// File: biotomas[P]ipasir/sat/picosat961/picosat-961/picosat.c
// Function: force
static void
force (PS * ps, Cls * c)
{
  Lit ** p, ** eol, * lit, * forced;
  Cls * reason;

  forced = 0;
  reason = c;

  eol = end_of_lits (c);
  for (p = c->lits; p < eol; p++)
    {
      lit = *p;
      if (lit->val == UNDEF)
	{
	  assert (!forced);
	  forced = lit;
#ifdef NO_BINARY_CLAUSES
	  if (c == &ps->impl)
	    reason = LIT2REASON (NOTLIT (p[p == c->lits ? 1 : -1]));
#endif
	}
      else
	assert (lit->val == FALSE);
    }

#ifdef NO_BINARY_CLAUSES
  if (c == &ps->impl)
    resetimpl (ps);
#endif
  if (!forced)
    return;

  assign_forced (ps, forced, reason);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
callq 0xb980
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x20(%rbp), %rax
jae 0x178ea
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x178a8
cmpq $0x0, -0x30(%rbp)
jne 0x177ab
jmp 0x177ca
leaq 0x787b(%rip), %rdi      # 0x1f02d
leaq 0x5aeb(%rip), %rsi      # 0x1d2a4
movl $0x1193, %edx           # imm = 0x1193
leaq 0x7870(%rip), %rcx      # 0x1f035
callq 0x10b0
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
addq $0x70, %rcx
cmpq %rcx, %rax
jne 0x178a6
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x18(%rbp), %rcx
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %r8
addq $0x18, %r8
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0x1, %esi
cmpq %r8, %rdi
cmovel %esi, %edx
movslq %edx, %rdx
movq (%rcx,%rdx,8), %rcx
movq -0x8(%rbp), %rdx
movq 0x38(%rdx), %rdx
subq %rdx, %rcx
xorq $0x1, %rcx
movsbl (%rax,%rcx), %eax
cmpl $0x1, %eax
jne 0x17830
jmp 0x1784f
leaq 0x7816(%rip), %rdi      # 0x1f04d
leaq 0x5a66(%rip), %rsi      # 0x1d2a4
movl $0x1197, %edx           # imm = 0x1197
leaq 0x77eb(%rip), %rcx      # 0x1f035
callq 0x10b0
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x18(%rbp), %rcx
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %r8
addq $0x18, %r8
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0x1, %esi
cmpq %r8, %rdi
cmovel %esi, %edx
movslq %edx, %rdx
movq (%rcx,%rdx,8), %rcx
movq -0x8(%rbp), %rdx
movq 0x38(%rdx), %rdx
subq %rdx, %rcx
xorq $0x1, %rcx
addq %rcx, %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
subq %rcx, %rax
shlq %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x178d7
movq -0x28(%rbp), %rax
movsbl (%rax), %eax
cmpl $-0x1, %eax
jne 0x178b6
jmp 0x178d5
leaq 0x6b79(%rip), %rdi      # 0x1e436
leaq 0x59e0(%rip), %rsi      # 0x1d2a4
movl $0x119b, %edx           # imm = 0x119B
leaq 0x7765(%rip), %rcx      # 0x1f035
callq 0x10b0
jmp 0x178d7
jmp 0x178d9
movq -0x18(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x18(%rbp)
jmp 0x17779
movq -0x10(%rbp), %rax
movq -0x8(%rbp), %rcx
addq $0x70, %rcx
cmpq %rcx, %rax
jne 0x17904
movq -0x8(%rbp), %rdi
callq 0x13ec0
cmpq $0x0, -0x30(%rbp)
jne 0x1790d
jmp 0x1791e
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x38(%rbp), %rdx
callq 0x13850
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)