// File: /workspace/github_cpp_makefile_star2_O1/akinanop[P]mvl-solver/src/Variable.cc
// Function: Variable::Variable(int, int)
Variable::Variable(int var, int domain)
{
	VAR = var;
	VAL = -1;
	DOMAINSIZE = domain;
	ATOMINDEX = new int[DOMAINSIZE];
	ATOMLEVEL = new int[DOMAINSIZE];
	ATOMASSIGN = new int[DOMAINSIZE];
	ATOMCNTPOS = new int[DOMAINSIZE];
	ATOMCNTNEG = new int[DOMAINSIZE];
	VSIDS_SCORE = new double[DOMAINSIZE];
	VSIDS_SCORE_NEG = new double[DOMAINSIZE];
	CLAUSEID = new int[DOMAINSIZE];
	ATOMWATCHPOS = new VARRECORD *[DOMAINSIZE];
	ATOMWATCHNEG = new VARRECORD *[DOMAINSIZE];
	ATOMRECPOS = new vector<int> [DOMAINSIZE];
	ATOMRECNEG = new vector<int> [DOMAINSIZE];
	for(int i=0; i<DOMAINSIZE; i++)
	{ // CHANGED DEFAULT ATOMLEVEL TO -10
		ATOMLEVEL[i] = -10;
		ATOMASSIGN[i] = 0;
		ATOMCNTPOS[i] = 0;
		ATOMCNTNEG[i] = 0;
		VSIDS_SCORE[i] = 0;
		VSIDS_SCORE_NEG[i] = 0;
		CLAUSEID[i] = -10;
		ATOMWATCHPOS[i] = NULL;
		ATOMWATCHNEG[i] = NULL;
		ATOMINDEX[i] = -1;
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movslq %edx, %r14
movl $0x18, %ecx
movq %r14, %rax
mulq %rcx
movq %rax, %r15
seto %al
addq $0x8, %r15
movq $-0x1, %rcx
cmovbq %rcx, %r15
movq %rdi, %rbx
movl %esi, (%rdi)
movl $0xffffffff, 0x4(%rdi)  # imm = 0xFFFFFFFF
movl %r14d, 0x8(%rdi)
testb %al, %al
cmovneq %rcx, %r15
leaq (,%r14,4), %r13
testl %r14d, %r14d
cmovsq %rcx, %r13
leaq (,%r14,8), %r12
cmovsq %rcx, %r12
movq %r13, %rdi
callq 0x2030
movq %rax, 0x10(%rbx)
movq %r13, %rdi
callq 0x2030
movq %rax, 0x18(%rbx)
movq %r13, %rdi
callq 0x2030
movq %rax, 0x20(%rbx)
movq %r13, %rdi
callq 0x2030
movq %rax, 0x28(%rbx)
movq %r13, %rdi
callq 0x2030
movq %rax, 0x30(%rbx)
movq %r12, %rdi
callq 0x2030
movq %rax, 0x38(%rbx)
movq %r12, %rdi
callq 0x2030
movq %rax, 0x40(%rbx)
movq %r13, %rdi
callq 0x2030
movq %rax, 0x48(%rbx)
movq %r12, %rdi
callq 0x2030
movq %rax, 0x50(%rbx)
movq %r12, %rdi
callq 0x2030
movq %rax, 0x58(%rbx)
movq %r15, %rdi
callq 0x2030
leaq 0x8(%rax), %r12
movq %r14, (%rax)
movabsq $-0x5555555555555555, %r13 # imm = 0xAAAAAAAAAAAAAAAB
testl %r14d, %r14d
je 0x744e
leaq (%r14,%r14,2), %rax
leaq -0x18(,%rax,8), %rax
mulq %r13
shrq $0x4, %rdx
leaq (%rdx,%rdx,2), %rax
leaq 0x18(,%rax,8), %rdx
movq %r12, %rdi
xorl %esi, %esi
callq 0x2140
movq %r12, 0x60(%rbx)
movq %r15, %rdi
callq 0x2030
leaq 0x8(%rax), %r15
movq %r14, (%rax)
testl %r14d, %r14d
je 0x748f
leaq (%r14,%r14,2), %rax
leaq -0x18(,%rax,8), %rax
mulq %r13
shrq $0x4, %rdx
leaq (%rdx,%rdx,2), %rax
leaq 0x18(,%rax,8), %rdx
movq %r15, %rdi
xorl %esi, %esi
callq 0x2140
movq %r15, 0x68(%rbx)
cmpl $0x0, 0x8(%rbx)
jle 0x74fc
xorl %eax, %eax
movl $0xfffffff6, %ecx       # imm = 0xFFFFFFF6
xorl %edx, %edx
movq 0x18(%rbx), %rsi
movl %ecx, (%rsi,%rdx,4)
movq 0x20(%rbx), %rsi
movl %eax, (%rsi,%rdx,4)
movq 0x28(%rbx), %rsi
movl %eax, (%rsi,%rdx,4)
movq 0x30(%rbx), %rsi
movl %eax, (%rsi,%rdx,4)
movq 0x38(%rbx), %rsi
movq %rax, (%rsi,%rdx,8)
movq 0x40(%rbx), %rsi
movq %rax, (%rsi,%rdx,8)
movq 0x48(%rbx), %rsi
movl %ecx, (%rsi,%rdx,4)
movq 0x50(%rbx), %rsi
movq %rax, (%rsi,%rdx,8)
movq 0x58(%rbx), %rsi
movq %rax, (%rsi,%rdx,8)
movq 0x10(%rbx), %rsi
movl $0xffffffff, (%rsi,%rdx,4) # imm = 0xFFFFFFFF
incq %rdx
movslq 0x8(%rbx), %rsi
cmpq %rsi, %rdx
jl 0x74a2
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq