// File: /workspace/github_cpp_makefile_star2_O3/biotomas[P]ipasir/sat/picosat961/picosat-961/picosat.c
// Function: extract_all_failed_assumptions
static void
extract_all_failed_assumptions (PS * ps)
{
  Lit ** p, ** eol;
  Var * v, * u;
  int pos;
  Cls * c;

  assert (!ps->extracted_all_failed_assumptions);

  assert (ps->failed_assumption);
  assert (ps->mhead == ps->marked);

  if (ps->marked == ps->eom)
    ENLARGE (ps->marked, ps->mhead, ps->eom);

  v = LIT2VAR (ps->failed_assumption);
  mark_var (ps, v);
  pos = 0;

  while (pos < ps->mhead - ps->marked)
    {
      v = ps->marked[pos++];
      assert (v->mark);
      c = var2reason (ps, v);
      if (!c)
	continue;
      eol = end_of_lits (c);
      for (p = c->lits; p < eol; p++)
	{
	  u = LIT2VAR (*p);
	  if (!u->mark)
	    mark_var (ps, u);
	}
#ifdef NO_BINARY_CLAUSES
      if (c == &ps->impl)
	resetimpl (ps);
#endif
    }

  for (p = ps->als; p < ps->alshead; p++)
    {
      u = LIT2VAR (*p);
      if (!u->mark) continue;
      u->failed = 1;
      LOG ( fprintf (ps->out,
                     "%sfailed assumption %d\n",
		     ps->prefix, LIT2INT (*p)));
    }

  while (ps->mhead > ps->marked)
    (*--ps->mhead)->mark = 0;

  ps->extracted_all_failed_assumptions = 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpl $0x0, 0x1c0(%rdi)
jne 0x9104
movq %rdi, %rbx
movq 0x1b8(%rdi), %rsi
testq %rsi, %rsi
je 0x9123
movq 0x270(%rbx), %rax
movq 0x278(%rbx), %rcx
cmpq %rax, %rcx
jne 0x9142
cmpq 0x280(%rbx), %rcx
jne 0x8f8b
movl $0x8, %ecx
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0x473a
movq %rax, 0x270(%rbx)
movq %rax, 0x278(%rbx)
addq $0x8, %rax
movq %rax, 0x280(%rbx)
movq 0x1b8(%rbx), %rsi
subl 0x38(%rbx), %esi
shrl %esi
shlq $0x4, %rsi
addq 0x40(%rbx), %rsi
movq %rbx, %rdi
callq 0x1080c
movq 0x270(%rbx), %rcx
movq 0x278(%rbx), %rax
movq %rax, %rdx
subq %rcx, %rdx
testq %rdx, %rdx
jle 0x9051
leaq 0x70(%rbx), %r15
xorl %r12d, %r12d
movq (%rcx,%r12,8), %rsi
testb $0x1, (%rsi)
je 0x90e5
movq %rbx, %rdi
callq 0x106d2
testq %rax, %rax
je 0x902d
movq %rax, %r14
movl (%rax), %eax
testq %rax, %rax
je 0x901e
leaq (%r14,%rax,8), %r13
addq $0x18, %r13
leaq 0x18(%r14), %rbp
movq 0x40(%rbx), %rsi
movl (%rbp), %eax
subl 0x38(%rbx), %eax
shrl %eax
shlq $0x4, %rax
testb $0x1, (%rsi,%rax)
jne 0x9015
addq %rax, %rsi
movq %rbx, %rdi
callq 0x1080c
addq $0x8, %rbp
cmpq %r13, %rbp
jb 0x8ff4
cmpq %r15, %r14
jne 0x902d
movl $0x0, 0xc0(%rbx)
incq %r12
movq 0x270(%rbx), %rcx
movq 0x278(%rbx), %rax
movq %rax, %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
cmpq %r12, %rdx
jg 0x8fc4
movq 0xf8(%rbx), %rdx
movq 0x100(%rbx), %rsi
cmpq %rsi, %rdx
jae 0x90a4
movq 0x40(%rbx), %rax
movl (%rdx), %ecx
subl 0x38(%rbx), %ecx
shrl %ecx
shlq $0x4, %rcx
movzwl (%rax,%rcx), %edi
testb $0x1, %dil
je 0x908d
addq %rcx, %rax
orl $0x20, %edi
movw %di, (%rax)
movq 0x100(%rbx), %rsi
addq $0x8, %rdx
cmpq %rsi, %rdx
jb 0x9064
movq 0x270(%rbx), %rcx
movq 0x278(%rbx), %rax
cmpq %rcx, %rax
jbe 0x90cc
leaq -0x8(%rax), %rcx
movq %rcx, 0x278(%rbx)
movq -0x8(%rax), %rax
andw $-0x2, (%rax)
movq 0x278(%rbx), %rax
cmpq 0x270(%rbx), %rax
ja 0x90a9
movl $0x1, 0x1c0(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xbd78(%rip), %rdi      # 0x14e64
leaq 0xa189(%rip), %rsi      # 0x1327c
leaq 0xc593(%rip), %rcx      # 0x1568d
movl $0x1994, %edx           # imm = 0x1994
callq 0x10b0
leaq 0xa861(%rip), %rdi      # 0x1396c
leaq 0xa16a(%rip), %rsi      # 0x1327c
leaq 0xc574(%rip), %rcx      # 0x1568d
movl $0x1985, %edx           # imm = 0x1985
callq 0x10b0
leaq 0xa430(%rip), %rdi      # 0x1355a
leaq 0xa14b(%rip), %rsi      # 0x1327c
leaq 0xc555(%rip), %rcx      # 0x1568d
movl $0x1987, %edx           # imm = 0x1987
callq 0x10b0
leaq 0xaee8(%rip), %rdi      # 0x14031
leaq 0xa12c(%rip), %rsi      # 0x1327c
leaq 0xc536(%rip), %rcx      # 0x1568d
movl $0x1988, %edx           # imm = 0x1988
callq 0x10b0