// File: /workspace/github_cpp_makefile_star2_O1/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 0xabd6
movq %rbx, %rdi
callq 0x3de6
jmp 0xabde
movq %rbx, %rdi
callq 0x4264
movq 0x100(%rbx), %rcx
subq 0xf8(%rbx), %rcx
movq 0x1e0(%rbx), %rax
shrq $0x3, %rcx
movq 0x1e8(%rbx), %rdx
cmpq %rdx, %rax
jne 0xac0a
movq 0x1f8(%rbx), %rax
movq 0x200(%rbx), %rsi
cmpq %rsi, %rax
je 0xac2f
cmpq $0x1, (%rax)
sbbl $-0x1, %ecx
addq $0x8, %rax
cmpq %rdx, %rax
jne 0xac11
movq 0x1f8(%rbx), %rax
jmp 0xac11
movl 0x2c(%rbx), %edx
movl %edx, %eax
negl %eax
leal (%rax,%rax), %esi
testl %eax, %eax
leal 0x1(%rdx,%rdx), %eax
cmovnsl %esi, %eax
cmpl $0x2, %eax
jb 0xac89
movq 0x38(%rbx), %rsi
addq %rsi, %rax
leaq 0x2(%rsi), %rdi
movq 0x68(%rbx), %r8
movl %edi, %r9d
subl %esi, %r9d
shlq $0x4, %r9
movl 0x8(%r8,%r9), %r10d
testq %r10, %r10
je 0xac81
movq (%r8,%r9), %r9
leaq (%r9,%r10,8), %r10
cmpq %rdi, (%r9)
sbbl $-0x1, %ecx
addq $0x8, %r9
cmpq %r10, %r9
jb 0xac72
incq %rdi
cmpq %rax, %rdi
jbe 0xac56
leaq 0x8063(%rip), %rsi      # 0x12cf3
movq %r14, %rdi
xorl %eax, %eax
callq 0x1130
movq 0x1e0(%rbx), %r13
cmpq 0x1e8(%rbx), %r13
jne 0xacb1
movq 0x1f8(%rbx), %r13
cmpq 0x200(%rbx), %r13
je 0xad36
leaq 0x803f(%rip), %r12      # 0x12d00
movq (%r13), %rbp
testq %rbp, %rbp
je 0xad19
movl (%rbp), %eax
testq %rax, %rax
je 0xad0a
leaq 0x18(,%rax,8), %r15
addq %rbp, %r15
addq $0x18, %rbp
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 %r12, %rsi
xorl %eax, %eax
callq 0x1130
addq $0x8, %rbp
cmpq %r15, %rbp
jb 0xace1
leaq 0x7ff9(%rip), %rdi      # 0x12d0a
movq %r14, %rsi
callq 0x10c0
addq $0x8, %r13
cmpq 0x1e8(%rbx), %r13
jne 0xad2d
movq 0x1f8(%rbx), %r13
cmpq 0x200(%rbx), %r13
jne 0xacc1
movl 0x2c(%rbx), %eax
leal 0x1(,%rax,2), %edx
negl %eax
leal (%rax,%rax), %ecx
testl %eax, %eax
cmovnsl %ecx, %edx
movq %rdx, (%rsp)
cmpl $0x2, %edx
jb 0xade0
movq 0x38(%rbx), %r13
addq %r13, (%rsp)
addq $0x2, %r13
leaq 0x7f9a(%rip), %r15      # 0x12d04
movq 0x68(%rbx), %rax
movl 0x38(%rbx), %edx
movl %r13d, %ecx
subl %edx, %ecx
shlq $0x4, %rcx
movl 0x8(%rax,%rcx), %edx
testq %rdx, %rdx
je 0xadd7
movq (%rax,%rcx), %rbp
leaq (,%rdx,8), %r12
addq %rbp, %r12
movq (%rbp), %rax
cmpq %r13, %rax
jb 0xadce
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 0x1130
addq $0x8, %rbp
cmpq %r12, %rbp
jb 0xad92
incq %r13
cmpq (%rsp), %r13
jbe 0xad6a
movq 0xf8(%rbx), %r12
cmpq 0x100(%rbx), %r12
jae 0xae25
leaq 0x7f10(%rip), %r15      # 0x12d07
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 0x1130
addq $0x8, %r12
cmpq 0x100(%rbx), %r12
jb 0xadf7
movq %r14, %rdi
callq 0x1160
cmpl $0x0, 0x35c(%rbx)
je 0xae4c
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x41bd
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq