// File: Laakeri[P]maxpre/src/touchedlist.cpp
// Function: maxPreprocessor::TouchedList::getModClauses(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
vector<int> TouchedList::getModClauses(string technique) {
	if (techniqueItr.count(technique) == 0) {
		techniqueItr[technique] = itr;
		vector<int> ret;
		ret.reserve(pi.clauses.size());
		for (int i = 0; i < (int)pi.clauses.size(); i++) {
			if (!pi.isClauseRemoved(i)) {
				ret.push_back(i);
			}
		}
		return ret;
	}
	else {
		getItr++;
		if (getI.size() < pi.clauses.size()) {
			getI.resize(pi.clauses.size());
		}
		uint64_t eitr = techniqueItr[technique];
		techniqueItr[technique] = itr;
		vector<int> ret;
		for (int i = (int)modClauses.size() - 1; i >= 0 && modClauses[i].F >= eitr; i--) {
			if (!pi.isClauseRemoved(modClauses[i].S)) {
				if (getI[modClauses[i].S] != getItr) {
					getI[modClauses[i].S] = getItr;
					ret.push_back(modClauses[i].S);
				}
			}
		}
		return ret;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdx, -0x60(%rbp)
movq %rsi, %rax
movq -0x60(%rbp), %rsi
movq %rdi, -0x58(%rbp)
movq %rdi, %rcx
movq %rcx, -0x50(%rbp)
movq %rdi, -0x8(%rbp)
movq %rax, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x48(%rbp)
addq $0x140, %rdi            # imm = 0x140
callq 0x743e0
cmpq $0x0, %rax
jne 0x73da4
movq -0x48(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq 0x188(%rdi), %rax
movq %rax, -0x68(%rbp)
addq $0x140, %rdi            # imm = 0x140
callq 0x74440
movq -0x68(%rbp), %rcx
movq -0x58(%rbp), %rdi
movq %rcx, (%rax)
movb $0x0, -0x19(%rbp)
callq 0xa7e0
movq -0x48(%rbp), %rax
movq 0x1a0(%rax), %rdi
callq 0x3c4b0
movq -0x58(%rbp), %rdi
movq %rax, %rsi
callq 0x3e620
jmp 0x73d0c
movl $0x0, -0x30(%rbp)
movq -0x48(%rbp), %rax
movl -0x30(%rbp), %ecx
movl %ecx, -0x6c(%rbp)
movq 0x1a0(%rax), %rdi
callq 0x3c4b0
movq %rax, %rcx
movl -0x6c(%rbp), %eax
cmpl %ecx, %eax
jge 0x73d8c
movq -0x48(%rbp), %rax
movq 0x1a0(%rax), %rdi
movl -0x30(%rbp), %esi
callq 0x5eb70
movb %al, -0x6d(%rbp)
jmp 0x73d4b
movb -0x6d(%rbp), %al
testb $0x1, %al
jne 0x73d7f
jmp 0x73d54
movq -0x58(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xa8c0
jmp 0x73d63
jmp 0x73d7f
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0xab00
jmp 0x74008
jmp 0x73d81
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x73d13
movb $0x1, -0x19(%rbp)
testb $0x1, -0x19(%rbp)
jne 0x73d9f
movq -0x58(%rbp), %rdi
callq 0xab00
jmp 0x73ffb
movq -0x48(%rbp), %rdi
movl 0x198(%rdi), %eax
addl $0x1, %eax
movl %eax, 0x198(%rdi)
addq $0x170, %rdi            # imm = 0x170
callq 0xf940
movq %rax, %rcx
movq -0x48(%rbp), %rax
movq %rcx, -0x78(%rbp)
movq 0x1a0(%rax), %rdi
callq 0x3c4b0
movq %rax, %rcx
movq -0x78(%rbp), %rax
cmpq %rcx, %rax
jae 0x73e10
movq -0x48(%rbp), %rax
movq %rax, %rcx
addq $0x170, %rcx            # imm = 0x170
movq %rcx, -0x80(%rbp)
movq 0x1a0(%rax), %rdi
callq 0x3c4b0
movq -0x80(%rbp), %rdi
movq %rax, %rsi
callq 0xa990
movq -0x48(%rbp), %rdi
movq -0x60(%rbp), %rsi
addq $0x140, %rdi            # imm = 0x140
callq 0x74440
movq -0x60(%rbp), %rsi
movq -0x48(%rbp), %rdi
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq 0x188(%rdi), %rax
movq %rax, -0x88(%rbp)
addq $0x140, %rdi            # imm = 0x140
callq 0x74440
movq -0x88(%rbp), %rcx
movq -0x58(%rbp), %rdi
movq %rcx, (%rax)
movb $0x0, -0x39(%rbp)
callq 0xa7e0
movq -0x48(%rbp), %rdi
addq $0xf0, %rdi
callq 0x74380
subl $0x1, %eax
movl %eax, -0x40(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x40(%rbp)
movb %al, -0x89(%rbp)
jl 0x73eac
movq -0x48(%rbp), %rdi
addq $0xf0, %rdi
movslq -0x40(%rbp), %rsi
callq 0x743b0
movq (%rax), %rax
cmpq -0x38(%rbp), %rax
setae %al
movb %al, -0x89(%rbp)
movb -0x89(%rbp), %al
testb $0x1, %al
jne 0x73ebb
jmp 0x73fe6
movq -0x48(%rbp), %rdi
movq 0x1a0(%rdi), %rax
movq %rax, -0x98(%rbp)
addq $0xf0, %rdi
movslq -0x40(%rbp), %rsi
callq 0x743b0
movq -0x98(%rbp), %rdi
movl 0x8(%rax), %esi
callq 0x5eb70
movb %al, -0x8a(%rbp)
jmp 0x73ef4
movb -0x8a(%rbp), %al
testb $0x1, %al
jne 0x73fd6
jmp 0x73f04
movq -0x48(%rbp), %rdi
movq %rdi, %rax
addq $0x170, %rax            # imm = 0x170
movq %rax, -0xa0(%rbp)
addq $0xf0, %rdi
movslq -0x40(%rbp), %rsi
callq 0x743b0
movq -0xa0(%rbp), %rdi
movslq 0x8(%rax), %rsi
callq 0xa7c0
movq -0x48(%rbp), %rcx
movl (%rax), %eax
cmpl 0x198(%rcx), %eax
je 0x73fd4
movq -0x48(%rbp), %rdi
movl 0x198(%rdi), %eax
movl %eax, -0xac(%rbp)
movq %rdi, %rax
addq $0x170, %rax            # imm = 0x170
movq %rax, -0xb8(%rbp)
addq $0xf0, %rdi
movq %rdi, -0xa8(%rbp)
movslq -0x40(%rbp), %rsi
callq 0x743b0
movq -0xb8(%rbp), %rdi
movslq 0x8(%rax), %rsi
callq 0xa7c0
movl -0xac(%rbp), %ecx
movq -0xa8(%rbp), %rdi
movl %ecx, (%rax)
movslq -0x40(%rbp), %rsi
callq 0x743b0
movq -0x58(%rbp), %rdi
movq %rax, %rsi
addq $0x8, %rsi
callq 0xa8c0
jmp 0x73fbb
jmp 0x73fd4
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0xab00
jmp 0x74008
jmp 0x73fd6
jmp 0x73fd8
movl -0x40(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x73e7a
movb $0x1, -0x39(%rbp)
testb $0x1, -0x39(%rbp)
jne 0x73ff9
movq -0x58(%rbp), %rdi
callq 0xab00
jmp 0x73ffb
movq -0x50(%rbp), %rax
addq $0xc0, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x4610
nopw %cs:(%rax,%rax)