// File: Laakeri[P]maxpre/src/./BVE.cpp
// Function: maxPreprocessor::Preprocessor::tryBVE(int)
int Preprocessor::tryBVE(int var) {
	vector<vector<int> > newClauses;
	int sizeLimit = pi.litClauses[posLit(var)].size() + pi.litClauses[negLit(var)].size();
	for (int i = 0; i < (int)pi.litClauses[posLit(var)].size(); i++) {
		for (int ii = 0; ii < (int)pi.litClauses[negLit(var)].size(); ii++) {
			// Check if resulting clause will be a tautology
			Clause& c1 = pi.clauses[pi.litClauses[posLit(var)][i]];
			Clause& c2 = pi.clauses[pi.litClauses[negLit(var)][ii]];
			int j2 = 0;
			bool f = false;
			for (int j = 0; j < (int)c1.lit.size(); j++) {
				while (j2 < (int)c2.lit.size() && c2.lit[j2] <= c1.lit[j]) {
					if (litNegation(c2.lit[j2]) == c1.lit[j] && litVariable(c1.lit[j]) != var) {
						f = true;
						break;
					}
					j2++;
				}
				if (f) break;
				if (j2 < (int)c2.lit.size() && litNegation(c2.lit[j2]) == c1.lit[j] && litVariable(c1.lit[j]) != var) {
					f = true;
					break;
				}
			}
			if (f) continue;
			if ((int)newClauses.size() >= sizeLimit) return 0;
			newClauses.push_back(vector<int>());
			j2 = 0;
			for (int j = 0; j < (int)c1.lit.size(); j++) {
				while ((int)j2 < (int)c2.lit.size() && c2.lit[j2] <= c1.lit[j]) {
					if (litVariable(c2.lit[j2]) != var) {
						newClauses.back().push_back(c2.lit[j2]);
					}
					j2++;
				}
				if (!((int)newClauses.back().size() > 0 && newClauses.back().back() == c1.lit[j]) && litVariable(c1.lit[j]) != var) {
					newClauses.back().push_back(c1.lit[j]);
				}
			}
			while ((int)j2 < (int)c2.lit.size()) {
				if (litVariable(c2.lit[j2]) != var) {
					newClauses.back().push_back(c2.lit[j2]);
				}
				j2++;
			}
			
			// Check if valid, this can be deleted
			for (int j = 1; j < (int)newClauses.back().size(); j++) {
				assert(litVariable(newClauses.back()[j]) != var);
				assert(litVariable(newClauses.back()[j - 1]) != var);
				assert(newClauses.back()[j] > newClauses.back()[j - 1]);
				assert(litNegation(newClauses.back()[j]) != newClauses.back()[j - 1]);
			}
		}
	}
	
	vector<vector<int> > nClauses;
	
	vector<int> toRemove;
	for (int c : pi.litClauses[posLit(var)]) {
		toRemove.push_back(c);
	}
	for (int c : pi.litClauses[negLit(var)]) {
		toRemove.push_back(c);
		nClauses.push_back(pi.clauses[c].lit);
	}
	for (int c : toRemove) {
		pi.removeClause(c);
	}
	for (int i = 0; i < (int)newClauses.size(); i++) {
		pi.addClause(newClauses[i]);
	}
	trace.BVE(var, nClauses);
	
	rLog.removeVariable(1);
	rLog.removeClause((int)toRemove.size() - (int)newClauses.size());
	
	//Check if valid, this can be deleted
	assert(pi.litClauses[posLit(var)].size() == 0 && pi.litClauses[negLit(var)].size() == 0);
	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x280, %rsp            # imm = 0x280
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x140(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xb2e0
movq -0x140(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x138(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5d0
movl %eax, -0x12c(%rbp)
jmp 0x1a7a8
movq -0x138(%rbp), %rdi
movl -0x12c(%rbp), %eax
movslq %eax, %rsi
callq 0xaab0
movq %rax, %rdi
callq 0xf940
movq %rax, %rcx
movq -0x140(%rbp), %rax
movq %rcx, -0x158(%rbp)
addq $0x18, %rax
movq %rax, -0x150(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5e0
movl %eax, -0x144(%rbp)
jmp 0x1a7f1
movq -0x150(%rbp), %rdi
movl -0x144(%rbp), %eax
movslq %eax, %rsi
callq 0xaab0
movq %rax, %rdi
callq 0xf940
movq %rax, %rcx
movq -0x158(%rbp), %rax
addq %rcx, %rax
movl %eax, -0x34(%rbp)
movl $0x0, -0x48(%rbp)
movq -0x140(%rbp), %rax
movl -0x48(%rbp), %ecx
movl %ecx, -0x16c(%rbp)
addq $0x18, %rax
movq %rax, -0x168(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5d0
movl %eax, -0x15c(%rbp)
jmp 0x1a850
movq -0x168(%rbp), %rdi
movl -0x15c(%rbp), %eax
movslq %eax, %rsi
callq 0xaab0
movq %rax, %rdi
callq 0xf940
movq %rax, %rcx
movl -0x16c(%rbp), %eax
cmpl %ecx, %eax
jge 0x1b034
movl $0x0, -0x4c(%rbp)
movq -0x140(%rbp), %rax
movl -0x4c(%rbp), %ecx
movl %ecx, -0x17c(%rbp)
addq $0x18, %rax
movq %rax, -0x178(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5e0
movl %eax, -0x170(%rbp)
jmp 0x1a8b0
movq -0x178(%rbp), %rdi
movl -0x170(%rbp), %eax
movslq %eax, %rsi
callq 0xaab0
movq %rax, %rdi
callq 0xf940
movq %rax, %rcx
movl -0x17c(%rbp), %eax
cmpl %ecx, %eax
jge 0x1b024
movq -0x140(%rbp), %rax
movq %rax, %rcx
movq %rcx, -0x190(%rbp)
addq $0x18, %rax
movq %rax, -0x188(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5d0
movl %eax, -0x180(%rbp)
jmp 0x1a90a
movq -0x188(%rbp), %rdi
movl -0x180(%rbp), %eax
movslq %eax, %rsi
callq 0xaab0
movq %rax, %rdi
movslq -0x48(%rbp), %rsi
callq 0xa7c0
movq -0x190(%rbp), %rdi
movslq (%rax), %rsi
callq 0x3c600
movq %rax, %rcx
movq -0x140(%rbp), %rax
movq %rcx, -0x58(%rbp)
movq %rax, %rcx
movq %rcx, -0x1a8(%rbp)
addq $0x18, %rax
movq %rax, -0x1a0(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5e0
movl %eax, -0x194(%rbp)
jmp 0x1a96d
movq -0x1a0(%rbp), %rdi
movl -0x194(%rbp), %eax
movslq %eax, %rsi
callq 0xaab0
movq %rax, %rdi
movslq -0x4c(%rbp), %rsi
callq 0xa7c0
movq -0x1a8(%rbp), %rdi
movslq (%rax), %rsi
callq 0x3c600
movq %rax, -0x60(%rbp)
movl $0x0, -0x64(%rbp)
movb $0x0, -0x65(%rbp)
movl $0x0, -0x6c(%rbp)
movl -0x6c(%rbp), %eax
movl %eax, -0x1ac(%rbp)
movq -0x58(%rbp), %rdi
callq 0xf940
movq %rax, %rcx
movl -0x1ac(%rbp), %eax
cmpl %ecx, %eax
jge 0x1ab62
jmp 0x1a9d8
movl -0x64(%rbp), %eax
movl %eax, -0x1b4(%rbp)
movq -0x60(%rbp), %rdi
callq 0xf940
movl -0x1b4(%rbp), %ecx
movl %eax, %edx
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0x1ad(%rbp)
jge 0x1aa34
movq -0x60(%rbp), %rdi
movslq -0x64(%rbp), %rsi
callq 0xa7c0
movl (%rax), %eax
movl %eax, -0x1b8(%rbp)
movq -0x58(%rbp), %rdi
movslq -0x6c(%rbp), %rsi
callq 0xa7c0
movq %rax, %rcx
movl -0x1b8(%rbp), %eax
cmpl (%rcx), %eax
setle %al
movb %al, -0x1ad(%rbp)
movb -0x1ad(%rbp), %al
testb $0x1, %al
jne 0x1aa43
jmp 0x1aac5
movq -0x60(%rbp), %rdi
movslq -0x64(%rbp), %rsi
callq 0xa7c0
movl (%rax), %edi
callq 0x3c5a0
movl %eax, -0x1bc(%rbp)
jmp 0x1aa5f
movq -0x58(%rbp), %rdi
movslq -0x6c(%rbp), %rsi
callq 0xa7c0
movq %rax, %rcx
movl -0x1bc(%rbp), %eax
cmpl (%rcx), %eax
jne 0x1aab7
movq -0x58(%rbp), %rdi
movslq -0x6c(%rbp), %rsi
callq 0xa7c0
movl (%rax), %edi
callq 0x3c880
movl %eax, -0x1c0(%rbp)
jmp 0x1aa95
movl -0x1c0(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0x1aab7
movb $0x1, -0x65(%rbp)
jmp 0x1aac5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x1b476
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0x1a9d8
testb $0x1, -0x65(%rbp)
je 0x1aad0
jmp 0x1ab62
movl -0x64(%rbp), %eax
movl %eax, -0x1c4(%rbp)
movq -0x60(%rbp), %rdi
callq 0xf940
movq %rax, %rcx
movl -0x1c4(%rbp), %eax
cmpl %ecx, %eax
jge 0x1ab52
movq -0x60(%rbp), %rdi
movslq -0x64(%rbp), %rsi
callq 0xa7c0
movl (%rax), %edi
callq 0x3c5a0
movl %eax, -0x1c8(%rbp)
jmp 0x1ab0b
movq -0x58(%rbp), %rdi
movslq -0x6c(%rbp), %rsi
callq 0xa7c0
movq %rax, %rcx
movl -0x1c8(%rbp), %eax
cmpl (%rcx), %eax
jne 0x1ab52
movq -0x58(%rbp), %rdi
movslq -0x6c(%rbp), %rsi
callq 0xa7c0
movl (%rax), %edi
callq 0x3c880
movl %eax, -0x1cc(%rbp)
jmp 0x1ab41
movl -0x1cc(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0x1ab52
movb $0x1, -0x65(%rbp)
jmp 0x1ab62
jmp 0x1ab54
movl -0x6c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6c(%rbp)
jmp 0x1a9b3
testb $0x1, -0x65(%rbp)
je 0x1ab6d
jmp 0x1b016
leaq -0x30(%rbp), %rdi
callq 0xfd70
cmpl -0x34(%rbp), %eax
jl 0x1ab8e
movl $0x0, -0x4(%rbp)
movl $0x1, -0x70(%rbp)
jmp 0x1b461
xorps %xmm0, %xmm0
movaps %xmm0, -0x90(%rbp)
movq $0x0, -0x80(%rbp)
leaq -0x90(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0xa7e0
movq -0x1d8(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x3e200
jmp 0x1abc5
leaq -0x90(%rbp), %rdi
callq 0xab00
movl $0x0, -0x64(%rbp)
movl $0x0, -0x94(%rbp)
movl -0x94(%rbp), %eax
movl %eax, -0x1dc(%rbp)
movq -0x58(%rbp), %rdi
callq 0xf940
movq %rax, %rcx
movl -0x1dc(%rbp), %eax
cmpl %ecx, %eax
jge 0x1adb9
jmp 0x1ac0a
movl -0x64(%rbp), %eax
movl %eax, -0x1e4(%rbp)
movq -0x60(%rbp), %rdi
callq 0xf940
movl -0x1e4(%rbp), %ecx
movl %eax, %edx
xorl %eax, %eax
cmpl %edx, %ecx
movb %al, -0x1dd(%rbp)
jge 0x1ac69
movq -0x60(%rbp), %rdi
movslq -0x64(%rbp), %rsi
callq 0xa7c0
movl (%rax), %eax
movl %eax, -0x1e8(%rbp)
movq -0x58(%rbp), %rdi
movslq -0x94(%rbp), %rsi
callq 0xa7c0
movq %rax, %rcx
movl -0x1e8(%rbp), %eax
cmpl (%rcx), %eax
setle %al
movb %al, -0x1dd(%rbp)
movb -0x1dd(%rbp), %al
testb $0x1, %al
jne 0x1ac78
jmp 0x1acfa
movq -0x60(%rbp), %rdi
movslq -0x64(%rbp), %rsi
callq 0xa7c0
movl (%rax), %edi
callq 0x3c880
movl %eax, -0x1ec(%rbp)
jmp 0x1ac94
movl -0x1ec(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0x1acec
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, -0x1f8(%rbp)
movq -0x60(%rbp), %rdi
movslq -0x64(%rbp), %rsi
callq 0xa7c0
movq -0x1f8(%rbp), %rdi
movq %rax, %rsi
callq 0xa8c0
jmp 0x1accd
jmp 0x1acec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x90(%rbp), %rdi
callq 0xab00
jmp 0x1b476
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0x1ac0a
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, %rdi
callq 0xf940
cmpl $0x0, %eax
jle 0x1ad46
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, %rdi
callq 0x3e270
movl (%rax), %eax
movl %eax, -0x1fc(%rbp)
movq -0x58(%rbp), %rdi
movslq -0x94(%rbp), %rsi
callq 0xa7c0
movq %rax, %rcx
movl -0x1fc(%rbp), %eax
cmpl (%rcx), %eax
je 0x1ada3
movq -0x58(%rbp), %rdi
movslq -0x94(%rbp), %rsi
callq 0xa7c0
movl (%rax), %edi
callq 0x3c880
movl %eax, -0x200(%rbp)
jmp 0x1ad65
movl -0x200(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0x1ada3
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, -0x208(%rbp)
movq -0x58(%rbp), %rdi
movslq -0x94(%rbp), %rsi
callq 0xa7c0
movq -0x208(%rbp), %rdi
movq %rax, %rsi
callq 0xa8c0
jmp 0x1ada1
jmp 0x1ada3
jmp 0x1ada5
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
jmp 0x1abe2
jmp 0x1adbb
movl -0x64(%rbp), %eax
movl %eax, -0x20c(%rbp)
movq -0x60(%rbp), %rdi
callq 0xf940
movq %rax, %rcx
movl -0x20c(%rbp), %eax
cmpl %ecx, %eax
jge 0x1ae3f
movq -0x60(%rbp), %rdi
movslq -0x64(%rbp), %rsi
callq 0xa7c0
movl (%rax), %edi
callq 0x3c880
movl %eax, -0x210(%rbp)
jmp 0x1adf6
movl -0x210(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0x1ae31
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, -0x218(%rbp)
movq -0x60(%rbp), %rdi
movslq -0x64(%rbp), %rsi
callq 0xa7c0
movq -0x218(%rbp), %rdi
movq %rax, %rsi
callq 0xa8c0
jmp 0x1ae2f
jmp 0x1ae31
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0x1adbb
movl $0x1, -0x98(%rbp)
movl -0x98(%rbp), %eax
movl %eax, -0x21c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, %rdi
callq 0xf940
movq %rax, %rcx
movl -0x21c(%rbp), %eax
cmpl %ecx, %eax
jge 0x1b014
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, %rdi
movslq -0x98(%rbp), %rsi
callq 0xa7c0
movl (%rax), %edi
callq 0x3c880
movl %eax, -0x220(%rbp)
jmp 0x1ae9e
movl -0x220(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0x1aeab
jmp 0x1aeca
leaq 0x6b778(%rip), %rdi     # 0x8662a
leaq 0x6b576(%rip), %rsi     # 0x8642f
movl $0x204, %edx            # imm = 0x204
leaq 0x6b78e(%rip), %rcx     # 0x86653
callq 0x4260
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, %rdi
movl -0x98(%rbp), %eax
decl %eax
movslq %eax, %rsi
callq 0xa7c0
movl (%rax), %edi
callq 0x3c880
movl %eax, -0x224(%rbp)
jmp 0x1aef5
movl -0x224(%rbp), %eax
cmpl -0x14(%rbp), %eax
je 0x1af02
jmp 0x1af21
leaq 0x6b779(%rip), %rdi     # 0x86682
leaq 0x6b51f(%rip), %rsi     # 0x8642f
movl $0x205, %edx            # imm = 0x205
leaq 0x6b737(%rip), %rcx     # 0x86653
callq 0x4260
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, %rdi
movslq -0x98(%rbp), %rsi
callq 0xa7c0
movl (%rax), %eax
movl %eax, -0x228(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, %rdi
movl -0x98(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0xa7c0
movq %rax, %rcx
movl -0x228(%rbp), %eax
cmpl (%rcx), %eax
jle 0x1af6d
jmp 0x1af8c
leaq 0x6b73b(%rip), %rdi     # 0x866af
leaq 0x6b4b4(%rip), %rsi     # 0x8642f
movl $0x206, %edx            # imm = 0x206
leaq 0x6b6cc(%rip), %rcx     # 0x86653
callq 0x4260
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, %rdi
movslq -0x98(%rbp), %rsi
callq 0xa7c0
movl (%rax), %edi
callq 0x3c5a0
movl %eax, -0x22c(%rbp)
jmp 0x1afb3
leaq -0x30(%rbp), %rdi
callq 0x3e230
movq %rax, %rdi
movl -0x98(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0xa7c0
movq %rax, %rcx
movl -0x22c(%rbp), %eax
cmpl (%rcx), %eax
je 0x1afdf
jmp 0x1affe
leaq 0x6b6f9(%rip), %rdi     # 0x866df
leaq 0x6b442(%rip), %rsi     # 0x8642f
movl $0x207, %edx            # imm = 0x207
leaq 0x6b65a(%rip), %rcx     # 0x86653
callq 0x4260
jmp 0x1b000
movl -0x98(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x98(%rbp)
jmp 0x1ae49
jmp 0x1b016
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0x1a885
jmp 0x1b026
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x1a825
leaq -0xb0(%rbp), %rdi
callq 0xb2e0
leaq -0xc8(%rbp), %rdi
callq 0xa7e0
movq -0x140(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x238(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5d0
movl %eax, -0x230(%rbp)
jmp 0x1b06e
movq -0x238(%rbp), %rdi
movl -0x230(%rbp), %eax
movslq %eax, %rsi
callq 0xaab0
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rdi
callq 0xa800
movq %rax, -0xd8(%rbp)
movq -0xd0(%rbp), %rdi
callq 0xa830
movq %rax, -0xe0(%rbp)
leaq -0xd8(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0xa860
testb $0x1, %al
jne 0x1b0c9
jmp 0x1b12b
leaq -0xd8(%rbp), %rdi
callq 0xa8a0
movl (%rax), %eax
movl %eax, -0xe4(%rbp)
leaq -0xc8(%rbp), %rdi
leaq -0xe4(%rbp), %rsi
callq 0xa8c0
jmp 0x1b0f2
jmp 0x1b0f4
leaq -0xd8(%rbp), %rdi
callq 0xa930
jmp 0x1b0b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0xab00
leaq -0xb0(%rbp), %rdi
callq 0xb3b0
jmp 0x1b476
movq -0x140(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x248(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5e0
movl %eax, -0x23c(%rbp)
jmp 0x1b14d
movq -0x248(%rbp), %rdi
movl -0x23c(%rbp), %eax
movslq %eax, %rsi
callq 0xaab0
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rdi
callq 0xa800
movq %rax, -0xf8(%rbp)
movq -0xf0(%rbp), %rdi
callq 0xa830
movq %rax, -0x100(%rbp)
leaq -0xf8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xa860
testb $0x1, %al
jne 0x1b1a8
jmp 0x1b205
leaq -0xf8(%rbp), %rdi
callq 0xa8a0
movl (%rax), %eax
movl %eax, -0x104(%rbp)
leaq -0xc8(%rbp), %rdi
leaq -0x104(%rbp), %rsi
callq 0xa8c0
jmp 0x1b1d1
movq -0x140(%rbp), %rdi
movslq -0x104(%rbp), %rsi
callq 0x3c600
movq %rax, %rsi
leaq -0xb0(%rbp), %rdi
callq 0x3e2b0
jmp 0x1b1f5
jmp 0x1b1f7
leaq -0xf8(%rbp), %rdi
callq 0xa930
jmp 0x1b18f
leaq -0xc8(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x110(%rbp), %rdi
callq 0xa800
movq %rax, -0x118(%rbp)
movq -0x110(%rbp), %rdi
callq 0xa830
movq %rax, -0x120(%rbp)
leaq -0x118(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0xa860
testb $0x1, %al
jne 0x1b252
jmp 0x1b28a
leaq -0x118(%rbp), %rdi
callq 0xa8a0
movq -0x140(%rbp), %rdi
movl (%rax), %eax
movl %eax, -0x124(%rbp)
movl -0x124(%rbp), %esi
callq 0x5f7f0
jmp 0x1b27a
jmp 0x1b27c
leaq -0x118(%rbp), %rdi
callq 0xa930
jmp 0x1b239
movl $0x0, -0x128(%rbp)
movl -0x128(%rbp), %eax
movl %eax, -0x24c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xfd70
movq %rax, %rcx
movl -0x24c(%rbp), %eax
cmpl %ecx, %eax
jge 0x1b2f4
movslq -0x128(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0xaab0
movq -0x140(%rbp), %rdi
movq %rax, %rsi
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
callq 0x5f880
jmp 0x1b2e1
jmp 0x1b2e3
movl -0x128(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x128(%rbp)
jmp 0x1b294
movq -0x140(%rbp), %rdi
addq $0x2f0, %rdi            # imm = 0x2F0
movl -0x14(%rbp), %esi
leaq -0xb0(%rbp), %rdx
callq 0x5c250
jmp 0x1b313
movq -0x140(%rbp), %rdi
addq $0x218, %rdi            # imm = 0x218
movl $0x1, %esi
callq 0x61490
jmp 0x1b32d
movq -0x140(%rbp), %rax
addq $0x218, %rax            # imm = 0x218
movq %rax, -0x258(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0xf940
movl %eax, -0x25c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xfd70
movl -0x25c(%rbp), %esi
movq -0x258(%rbp), %rdi
subl %eax, %esi
callq 0x61410
jmp 0x1b372
movq -0x140(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x268(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5d0
movl %eax, -0x260(%rbp)
jmp 0x1b394
movq -0x268(%rbp), %rdi
movl -0x260(%rbp), %eax
movslq %eax, %rsi
callq 0xaab0
movq %rax, %rdi
callq 0xf940
movq %rax, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x269(%rbp)
jne 0x1b40e
movq -0x140(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x278(%rbp)
movl -0x14(%rbp), %edi
callq 0x3c5e0
movl %eax, -0x270(%rbp)
jmp 0x1b3e4
movq -0x278(%rbp), %rdi
movl -0x270(%rbp), %eax
movslq %eax, %rsi
callq 0xaab0
movq %rax, %rdi
callq 0xf940
cmpq $0x0, %rax
sete %al
movb %al, -0x269(%rbp)
movb -0x269(%rbp), %al
testb $0x1, %al
jne 0x1b41a
jmp 0x1b41c
jmp 0x1b43b
leaq 0x6b186(%rip), %rdi     # 0x865a9
leaq 0x6b005(%rip), %rsi     # 0x8642f
movl $0x222, %edx            # imm = 0x222
leaq 0x6b21d(%rip), %rcx     # 0x86653
callq 0x4260
movl $0x1, -0x4(%rbp)
movl $0x1, -0x70(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0xab00
leaq -0xb0(%rbp), %rdi
callq 0xb3b0
leaq -0x30(%rbp), %rdi
callq 0xb3b0
movl -0x4(%rbp), %eax
addq $0x280, %rsp            # imm = 0x280
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0xb3b0
movq -0x40(%rbp), %rdi
callq 0x4610
nopl (%rax,%rax)