// File: /workspace/github_cpp_makefile_star2_O2/biotomas[P]ipasir/sat/picosat961/picosat-961/picosat.c
// Function: picosat_print
void
picosat_print (PS * ps, FILE * file)
{
#ifdef NO_BINARY_CLAUSES
  Lit * lit, *other, * last;
  Ltk * stack;
#endif
  Lit **q, **eol;
  Cls **p, *c;
  unsigned n;

  if (ps->measurealltimeinlib)
    enter (ps);
  else
    check_ready (ps);

  n = 0;
  n +=  ps->alshead - ps->als;

  for (p = SOC; p != EOC; p = NXC (p))
    {
      c = *p;

      if (!c)
	continue;

#ifdef TRACE
      if (c->collected)
	continue;
#endif
      n++;
    }

#ifdef NO_BINARY_CLAUSES
  last = int2lit (ps, -ps->max_var);
  for (lit = int2lit (ps, 1); lit <= last; lit++)
    {
      stack = LIT2IMPLS (lit);
      eol = stack->start + stack->count;
      for (q = stack->start; q < eol; q++)
	if (*q >= lit)
	  n++;
    }
#endif

  fprintf (file, "p cnf %d %u\n", ps->max_var, n);

  for (p = SOC; p != EOC; p = NXC (p))
    {
      c = *p;
      if (!c)
	continue;

#ifdef TRACE
      if (c->collected)
	continue;
#endif

      eol = end_of_lits (c);
      for (q = c->lits; q < eol; q++)
	fprintf (file, "%d ", LIT2INT (*q));

      fputs ("0\n", file);
    }

#ifdef NO_BINARY_CLAUSES
  last = int2lit (ps, -ps->max_var);
  for (lit = int2lit (ps, 1); lit <= last; lit++)
    {
      stack = LIT2IMPLS (lit);
      eol = stack->start + stack->count;
      for (q = stack->start; q < eol; q++)
	if ((other = *q) >= lit)
	  fprintf (file, "%d %d 0\n", LIT2INT (lit), LIT2INT (other));
    }
#endif

  {
    Lit **r;
    for (r = ps->als; r < ps->alshead; r++)
      fprintf (file, "%d 0\n", LIT2INT (*r));
  }

  fflush (file);

  if (ps->measurealltimeinlib)
    leave (ps);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
cmpl $0x0, 0x35c(%rdi)
je 0x9f1c
movq %rbx, %rdi
callq 0x3703
jmp 0x9f24
movq %rbx, %rdi
callq 0x3b54
movq 0x100(%rbx), %rcx
subq 0xf8(%rbx), %rcx
movq 0x1e0(%rbx), %rax
shrq $0x3, %rcx
movq 0x1e8(%rbx), %rdx
cmpq %rdx, %rax
jne 0x9f50
movq 0x1f8(%rbx), %rax
movq 0x200(%rbx), %rsi
cmpq %rsi, %rax
je 0x9f75
cmpq $0x1, (%rax)
sbbl $-0x1, %ecx
addq $0x8, %rax
cmpq %rdx, %rax
jne 0x9f57
movq 0x1f8(%rbx), %rax
jmp 0x9f57
movl 0x2c(%rbx), %edx
movl %edx, %esi
negl %esi
movq 0x38(%rbx), %rax
leal (%rsi,%rsi), %edi
testl %esi, %esi
leal 0x1(%rdx,%rdx), %esi
cmovnsl %edi, %esi
addq %rax, %rsi
leaq 0x2(%rax), %rdi
cmpq %rsi, %rdi
ja 0x9fc9
movq 0x68(%rbx), %r9
movl %edi, %r10d
subl %eax, %r10d
shlq $0x4, %r10
movq (%r9,%r10), %r8
movl 0x8(%r9,%r10), %r9d
leaq (%r8,%r9,8), %r9
cmpq %r9, %r8
jae 0x9fc4
cmpq %rdi, (%r8)
sbbl $-0x1, %ecx
addq $0x8, %r8
jmp 0x9fb3
incq %rdi
jmp 0x9f93
leaq 0x7ceb(%rip), %rsi      # 0x11cbb
movq %r14, %rdi
xorl %eax, %eax
callq 0x1140
movq 0x1e0(%rbx), %r13
movq 0x1e8(%rbx), %rax
cmpq %rax, %r13
jne 0x9ff4
movq 0x1f8(%rbx), %r13
leaq 0x7ccd(%rip), %r15      # 0x11cc8
cmpq 0x200(%rbx), %r13
je 0xa067
movq (%r13), %rcx
testq %rcx, %rcx
je 0xa05c
leaq 0x18(%rcx), %rbp
movl (%rcx), %eax
leaq (%rcx,%rax,8), %r12
addq $0x18, %r12
cmpq %r12, %rbp
jae 0xa046
movl (%rbp), %eax
subl 0x38(%rbx), %eax
movl %eax, %ecx
shrl %ecx
movl %ecx, %edx
negl %edx
testb $0x1, %al
cmovel %ecx, %edx
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x1140
addq $0x8, %rbp
jmp 0xa01b
leaq 0x7c85(%rip), %rdi      # 0x11cd2
movq %r14, %rsi
callq 0x10c0
movq 0x1e8(%rbx), %rax
addq $0x8, %r13
cmpq %rax, %r13
jne 0x9ffb
jmp 0x9fed
movl 0x2c(%rbx), %eax
leal 0x1(,%rax,2), %edx
negl %eax
leal (%rax,%rax), %ecx
testl %eax, %eax
cmovnsl %ecx, %edx
movq 0x38(%rbx), %r13
addq %r13, %rdx
movq %rdx, (%rsp)
addq $0x2, %r13
leaq 0x7c3b(%rip), %r15      # 0x11ccc
cmpq (%rsp), %r13
ja 0xa106
movq 0x68(%rbx), %rax
movl 0x38(%rbx), %ecx
movl %r13d, %edx
subl %ecx, %edx
shlq $0x4, %rdx
movq (%rax,%rdx), %rbp
movl 0x8(%rax,%rdx), %eax
leaq (,%rax,8), %r12
addq %rbp, %r12
cmpq %r12, %rbp
jae 0xa101
movq (%rbp), %rax
cmpq %r13, %rax
jb 0xa0fb
movl 0x38(%rbx), %ecx
movl %r13d, %esi
subl %ecx, %esi
movl %esi, %edi
shrl %edi
movl %edi, %edx
negl %edx
testb $0x1, %sil
cmovel %edi, %edx
subl %ecx, %eax
movl %eax, %esi
shrl %esi
movl %esi, %ecx
negl %ecx
testb $0x1, %al
cmovel %esi, %ecx
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x1140
addq $0x8, %rbp
jmp 0xa0ba
incq %r13
jmp 0xa091
movq 0xf8(%rbx), %r12
leaq 0x7bbb(%rip), %r15      # 0x11ccf
cmpq 0x100(%rbx), %r12
jae 0xa144
movl (%r12), %eax
subl 0x38(%rbx), %eax
movl %eax, %ecx
shrl %ecx
movl %ecx, %edx
negl %edx
testb $0x1, %al
cmovel %ecx, %edx
movq %r14, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x1140
addq $0x8, %r12
jmp 0xa114
movq %r14, %rdi
callq 0x1170
cmpl $0x0, 0x35c(%rbx)
je 0xa16b
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3ade
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq