// File: 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
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x35c(%rax)
je 0xb47b
movq -0x8(%rbp), %rdi
callq 0x43a0
jmp 0xb484
movq -0x8(%rbp), %rdi
callq 0x49e0
movl $0x0, -0x54(%rbp)
movq -0x8(%rbp), %rax
movq 0x100(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0xf8(%rax), %rax
subq %rax, %rcx
sarq $0x3, %rcx
movl -0x54(%rbp), %eax
addq %rcx, %rax
movl %eax, -0x54(%rbp)
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x1e8(%rcx), %rax
jne 0xb4da
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rax
movq %rax, -0x68(%rbp)
jmp 0xb4e9
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x200(%rcx), %rax
je 0xb55b
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
jne 0xb516
jmp 0xb51f
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
movq -0x48(%rbp), %rax
addq $0x8, %rax
movq -0x8(%rbp), %rcx
cmpq 0x1e8(%rcx), %rax
jne 0xb545
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rax
movq %rax, -0x70(%rbp)
jmp 0xb551
movq -0x48(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x48(%rbp)
jmp 0xb4f1
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
xorl %esi, %esi
subl 0x2c(%rax), %esi
callq 0x4ef0
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x4ef0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x28(%rbp), %rax
ja 0xb629
movq -0x8(%rbp), %rax
movq 0x68(%rax), %rax
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rdx
movq 0x38(%rdx), %rdx
subq %rdx, %rcx
movl %ecx, %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq -0x30(%rbp), %rdx
movabsq $0xffffffff, %rcx       # imm = 0xFFFFFFFF
andq 0x8(%rdx), %rcx
movl %ecx, %ecx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
jae 0xb616
movq -0x38(%rbp), %rax
movq (%rax), %rax
cmpq -0x18(%rbp), %rax
jb 0xb606
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xb608
movq -0x38(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
jmp 0xb5e6
jmp 0xb618
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xb583
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x2c(%rax), %edx
movl -0x54(%rbp), %ecx
leaq 0x126ad(%rip), %rsi     # 0x1dceb
movb $0x0, %al
callq 0x1130
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rax
movq -0x8(%rbp), %rcx
cmpq 0x1e8(%rcx), %rax
jne 0xb66e
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rax
movq %rax, -0x78(%rbp)
jmp 0xb67d
movq -0x8(%rbp), %rax
movq 0x1e0(%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x200(%rcx), %rax
je 0xb781
movq -0x48(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
jne 0xb6b1
jmp 0xb742
movq -0x50(%rbp), %rdi
callq 0xb980
movq %rax, -0x40(%rbp)
movq -0x50(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
jae 0xb732
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
andl $0x1, %ecx
movl $0x1, %edx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl $0x0, %ecx
cmovnel %eax, %edx
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
subq %rcx, %rax
shrl %eax
imull %eax, %edx
leaq 0x125db(%rip), %rsi     # 0x1dcf8
movb $0x0, %al
callq 0x1130
movq -0x38(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
jmp 0xb6ca
movq -0x10(%rbp), %rsi
leaq 0x125c5(%rip), %rdi     # 0x1dd02
callq 0x10c0
movq -0x48(%rbp), %rax
addq $0x8, %rax
movq -0x8(%rbp), %rcx
cmpq 0x1e8(%rcx), %rax
jne 0xb768
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rax
movq %rax, -0x80(%rbp)
jmp 0xb774
movq -0x48(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x48(%rbp)
jmp 0xb685
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
xorl %esi, %esi
subl 0x2c(%rax), %esi
callq 0x4ef0
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x4ef0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x28(%rbp), %rax
ja 0xb8d7
movq -0x8(%rbp), %rax
movq 0x68(%rax), %rax
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rdx
movq 0x38(%rdx), %rdx
subq %rdx, %rcx
movl %ecx, %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq -0x30(%rbp), %rdx
movabsq $0xffffffff, %rcx       # imm = 0xFFFFFFFF
andq 0x8(%rdx), %rcx
movl %ecx, %ecx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
jae 0xb8c4
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpq -0x18(%rbp), %rax
jb 0xb8b1
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
andl $0x1, %ecx
movl $0x1, %edx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl $0x0, %ecx
cmovnel %eax, %edx
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
subq %rcx, %rax
shrl %eax
imull %eax, %edx
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
subq %rcx, %rax
movl %eax, %esi
andl $0x1, %esi
movl $0x1, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl $0x0, %esi
cmovnel %eax, %ecx
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rsi
movq 0x38(%rsi), %rsi
subq %rsi, %rax
shrl %eax
imull %eax, %ecx
leaq 0x12452(%rip), %rsi     # 0x1dcfc
movb $0x0, %al
callq 0x1130
jmp 0xb8b3
movq -0x38(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x38(%rbp)
jmp 0xb80c
jmp 0xb8c6
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xb7a9
movq -0x8(%rbp), %rax
movq 0xf8(%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x100(%rcx), %rax
jae 0xb955
movq -0x10(%rbp), %rdi
movq -0x60(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
subq %rcx, %rax
movl %eax, %ecx
andl $0x1, %ecx
movl $0x1, %edx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl $0x0, %ecx
cmovnel %eax, %edx
movq -0x60(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
subq %rcx, %rax
shrl %eax
imull %eax, %edx
leaq 0x123bf(%rip), %rsi     # 0x1dcff
movb $0x0, %al
callq 0x1130
movq -0x60(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x60(%rbp)
jmp 0xb8e6
movq -0x10(%rbp), %rdi
callq 0x1160
movq -0x8(%rbp), %rax
cmpl $0x0, 0x35c(%rax)
je 0xb974
movq -0x8(%rbp), %rdi
callq 0x4910
addq $0x80, %rsp
popq %rbp
retq
nopl (%rax)