// File: canzarlab[P]Trajan/src/Solver.cpp
// Function: Solver::IsNotInConflict(int, int, int, int) const
bool Solver::IsNotInConflict(int i, int j, int x, int y) const
{
    if (i == j || x == y) return false;
    if (cf == 0) return true;
    bool c2 = (t1.D[j][i] || t1.D[i][j]) == (t2.D[x][y] || t2.D[y][x]);
    bool c1 = (t1.D[i][j] == t2.D[x][y]); // assuming c2 is satisfied
    if (cf == 1) return !c2 || c1;
    return c2 && c1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl %r8d, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x98(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
je 0xacb37
movl -0x1c(%rbp), %eax
cmpl -0x20(%rbp), %eax
jne 0xacb40
movb $0x0, -0x1(%rbp)
jmp 0xacd4a
leaq 0xf4999(%rip), %rax     # 0x1a14e0
cmpl $0x0, (%rax)
jne 0xacb55
movb $0x1, -0x1(%rbp)
jmp 0xacd4a
movq -0x98(%rbp), %rax
movq 0x30(%rax), %rdi
addq $0x50, %rdi
movslq -0x18(%rbp), %rsi
callq 0x99b30
movq %rax, %rdi
movslq -0x14(%rbp), %rsi
callq 0x997b0
movq %rax, -0x38(%rbp)
movq %rdx, -0x30(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x99810
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x99(%rbp)
jne 0xacbd4
movq -0x98(%rbp), %rax
movq 0x30(%rax), %rdi
addq $0x50, %rdi
movslq -0x14(%rbp), %rsi
callq 0x99b30
movq %rax, %rdi
movslq -0x18(%rbp), %rsi
callq 0x997b0
movq %rax, -0x48(%rbp)
movq %rdx, -0x40(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x99810
movb %al, -0x99(%rbp)
movq -0x98(%rbp), %rax
movb -0x99(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
movl %ecx, -0xa0(%rbp)
movq 0x38(%rax), %rdi
addq $0x50, %rdi
movslq -0x1c(%rbp), %rsi
callq 0x99b30
movq %rax, %rdi
movslq -0x20(%rbp), %rsi
callq 0x997b0
movq %rax, -0x58(%rbp)
movq %rdx, -0x50(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x99810
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x9a(%rbp)
jne 0xacc65
movq -0x98(%rbp), %rax
movq 0x38(%rax), %rdi
addq $0x50, %rdi
movslq -0x20(%rbp), %rsi
callq 0x99b30
movq %rax, %rdi
movslq -0x1c(%rbp), %rsi
callq 0x997b0
movq %rax, -0x68(%rbp)
movq %rdx, -0x60(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x99810
movb %al, -0x9a(%rbp)
movq -0x98(%rbp), %rax
movl -0xa0(%rbp), %ecx
movb -0x9a(%rbp), %dl
andb $0x1, %dl
movzbl %dl, %edx
cmpl %edx, %ecx
sete %cl
andb $0x1, %cl
movb %cl, -0x21(%rbp)
movq 0x30(%rax), %rdi
addq $0x50, %rdi
movslq -0x14(%rbp), %rsi
callq 0x99b30
movq %rax, %rdi
movslq -0x18(%rbp), %rsi
callq 0x997b0
movq %rax, %rcx
movq -0x98(%rbp), %rax
movq %rcx, -0x80(%rbp)
movq %rdx, -0x78(%rbp)
movq 0x38(%rax), %rdi
addq $0x50, %rdi
movslq -0x1c(%rbp), %rsi
callq 0x99b30
movq %rax, %rdi
movslq -0x20(%rbp), %rsi
callq 0x997b0
movq %rax, -0x90(%rbp)
movq %rdx, -0x88(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xacdb0
andb $0x1, %al
movb %al, -0x69(%rbp)
leaq 0xf47e1(%rip), %rax     # 0x1a14e0
cmpl $0x1, (%rax)
jne 0xacd28
movb $0x1, %al
testb $0x1, -0x21(%rbp)
movb %al, -0xa1(%rbp)
je 0xacd1b
movb -0x69(%rbp), %al
movb %al, -0xa1(%rbp)
movb -0xa1(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0xacd4a
xorl %eax, %eax
testb $0x1, -0x21(%rbp)
movb %al, -0xa2(%rbp)
je 0xacd3f
movb -0x69(%rbp), %al
movb %al, -0xa2(%rbp)
movb -0xa2(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xb0, %rsp
popq %rbp
retq
nopl (%rax,%rax)