// File: biotomas[P]ipasir/sat/picosat961/picosat-961/picosat.c
// Function: reset
static void
reset (PS * ps)
{
  ABORTIF (!ps || 
           ps->state == RESET, "API usage: reset without initialization");

  delete_clauses (ps);
#ifdef TRACE
  delete_zhains (ps);
#endif
#ifdef NO_BINARY_CLAUSES
  {
    unsigned i;
    for (i = 2; i <= 2 * ps->max_var + 1; i++)
      lrelease (ps, ps->impls + i);
  }
#endif
#ifndef NADC
  reset_ados (ps);
#endif
#ifndef NFL
  DELETEN (ps->saved, ps->saved_size);
#endif
  DELETEN (ps->htps, 2 * ps->size_vars);
#ifndef NDSC
  DELETEN (ps->dhtps, 2 * ps->size_vars);
#endif
  DELETEN (ps->impls, 2 * ps->size_vars);
  DELETEN (ps->lits, 2 * ps->size_vars);
  DELETEN (ps->jwh, 2 * ps->size_vars);
  DELETEN (ps->vars, ps->size_vars);
  DELETEN (ps->rnks, ps->size_vars);
  DELETEN (ps->trail, ps->eot - ps->trail);
  DELETEN (ps->heap, ps->eoh - ps->heap);
  DELETEN (ps->als, ps->eoals - ps->als);
  DELETEN (ps->CLS, ps->eocls - ps->CLS);
  DELETEN (ps->rils, ps->eorils - ps->rils);
  DELETEN (ps->cils, ps->eocils - ps->cils);
  DELETEN (ps->fals, ps->eofals - ps->fals);
  DELETEN (ps->mass, ps->szmass);
  DELETEN (ps->mssass, ps->szmssass);
  DELETEN (ps->mcsass, ps->szmcsass);
  DELETEN (ps->humus, ps->szhumus);
  DELETEN (ps->added, ps->eoa - ps->added);
  DELETEN (ps->marked, ps->eom - ps->marked);
  DELETEN (ps->dfs, ps->eod - ps->dfs);
  DELETEN (ps->resolved, ps->eor - ps->resolved);
  DELETEN (ps->levels, ps->eolevels - ps->levels);
  DELETEN (ps->dused, ps->eodused - ps->dused);
  DELETEN (ps->buffer, ps->eob - ps->buffer);
  DELETEN (ps->indices, ps->eoi - ps->indices);
  DELETEN (ps->soclauses, ps->eoso - ps->soclauses);
  delete_prefix (ps);
  delete (ps, ps->rline[0], ps->szrline);
  delete (ps, ps->rline[1], ps->szrline);
  assert (getenv ("LEAK") || !ps->current_bytes);	/* found leak if failing */
#ifdef VISCORES
  pclose (ps->fviscores);
#endif
  if (ps->edelete)
    ps->edelete (ps->emgr, ps, sizeof *ps);
  else
    free (ps);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x609e
movq -0x8(%rbp), %rax
cmpl $0x0, (%rax)
je 0x609e
jmp 0x60bb
jmp 0x60a0
movq 0x1df51(%rip), %rax     # 0x23ff8
movq (%rax), %rsi
leaq 0x19107(%rip), %rdi     # 0x1f1b8
callq 0x10c0
callq 0x1060
movq -0x8(%rbp), %rdi
callq 0x18440
movl $0x2, -0xc(%rbp)
movl -0xc(%rbp), %eax
movq -0x8(%rbp), %rcx
movl 0x2c(%rcx), %ecx
shll %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
ja 0x6104
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x68(%rax), %rsi
movl -0xc(%rbp), %eax
shlq $0x4, %rax
addq %rax, %rsi
callq 0x185d0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x60cb
jmp 0x6106
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x410(%rax), %rsi
movq -0x8(%rbp), %rax
movl 0x418(%rax), %eax
movl %eax, %edx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x410(%rax)
jmp 0x613b
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rsi
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
shll %eax
movl %eax, %eax
movl %eax, %edx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x58(%rax)
jmp 0x616b
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rsi
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
shll %eax
movl %eax, %eax
movl %eax, %edx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x60(%rax)
jmp 0x619b
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x68(%rax), %rsi
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
shll %eax
movl %eax, %eax
movl %eax, %edx
shlq $0x4, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x68(%rax)
jmp 0x61cb
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rsi
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
shll %eax
movl %eax, %eax
movl %eax, %edx
shlq $0x0, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x38(%rax)
jmp 0x61fb
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rsi
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
shll %eax
movl %eax, %eax
movl %eax, %edx
shlq $0x2, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x50(%rax)
jmp 0x622b
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rsi
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, %edx
shlq $0x4, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x40(%rax)
jmp 0x6257
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rsi
movq -0x8(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, %edx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x48(%rax)
jmp 0x6283
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0xc8(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0xd8(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0xc8(%rax), %rax
subq %rax, %rdx
sarq $0x3, %rdx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0xc8(%rax)
jmp 0x62c9
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x1c8(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x1d8(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x1c8(%rax), %rax
subq %rax, %rdx
sarq $0x3, %rdx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x1c8(%rax)
jmp 0x630f
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0xf8(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x110(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0xf8(%rax), %rax
subq %rax, %rdx
sarq $0x3, %rdx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0xf8(%rax)
jmp 0x6355
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x118(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x128(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x118(%rax), %rax
subq %rax, %rdx
sarq $0x3, %rdx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x118(%rax)
jmp 0x639b
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x130(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x140(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x130(%rax), %rax
subq %rax, %rdx
sarq $0x2, %rdx
shlq $0x2, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x130(%rax)
jmp 0x63e1
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x148(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x158(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x148(%rax), %rax
subq %rax, %rdx
sarq $0x2, %rdx
shlq $0x2, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x148(%rax)
jmp 0x6427
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x160(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x170(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x160(%rax), %rax
subq %rax, %rdx
sarq $0x2, %rdx
shlq $0x2, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x160(%rax)
jmp 0x646d
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x178(%rax), %rsi
movq -0x8(%rbp), %rax
movslq 0x180(%rax), %rdx
shlq $0x2, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x178(%rax)
jmp 0x64a1
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x188(%rax), %rsi
movq -0x8(%rbp), %rax
movslq 0x190(%rax), %rdx
shlq $0x2, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x188(%rax)
jmp 0x64d5
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x198(%rax), %rsi
movq -0x8(%rbp), %rax
movslq 0x1a4(%rax), %rdx
shlq $0x2, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x198(%rax)
jmp 0x6509
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x1a8(%rax), %rsi
movq -0x8(%rbp), %rax
movslq 0x1b0(%rax), %rdx
shlq $0x2, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x1a8(%rax)
jmp 0x653d
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x258(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x268(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x258(%rax), %rax
subq %rax, %rdx
sarq $0x3, %rdx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x258(%rax)
jmp 0x6583
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x270(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x280(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x270(%rax), %rax
subq %rax, %rdx
sarq $0x3, %rdx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x270(%rax)
jmp 0x65c9
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x288(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x298(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x288(%rax), %rax
subq %rax, %rdx
sarq $0x3, %rdx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x288(%rax)
jmp 0x660f
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x2a0(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x2b0(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x2a0(%rax), %rax
subq %rax, %rdx
sarq $0x3, %rdx
shlq $0x3, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x2a0(%rax)
jmp 0x6655
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x2c8(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x2b8(%rax), %rax
subq %rax, %rdx
shlq $0x0, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x2b8(%rax)
jmp 0x6697
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x2d0(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x2e0(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x2d0(%rax), %rax
subq %rax, %rdx
sarq $0x2, %rdx
shlq $0x2, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x2d0(%rax)
jmp 0x66dd
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x2e8(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x2f8(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x2e8(%rax), %rax
subq %rax, %rdx
shlq $0x0, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x2e8(%rax)
jmp 0x671f
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x470(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x480(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x470(%rax), %rax
subq %rax, %rdx
sarq $0x2, %rdx
shlq $0x2, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x470(%rax)
jmp 0x6765
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x210(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x220(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0x210(%rax), %rax
subq %rax, %rdx
sarq $0x2, %rdx
shlq $0x2, %rdx
callq 0x97a0
movq -0x8(%rbp), %rax
movq $0x0, 0x210(%rax)
movq -0x8(%rbp), %rdi
callq 0x183e0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x360(%rax), %rsi
movq -0x8(%rbp), %rax
movslq 0x370(%rax), %rdx
callq 0x97a0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x368(%rax), %rsi
movq -0x8(%rbp), %rax
movslq 0x370(%rax), %rdx
callq 0x97a0
leaq 0x189f7(%rip), %rdi     # 0x1f1ee
callq 0x1030
cmpq $0x0, %rax
jne 0x6810
movq -0x8(%rbp), %rax
cmpq $0x0, 0x328(%rax)
jne 0x6812
jmp 0x6831
leaq 0x189da(%rip), %rdi     # 0x1f1f3
leaq 0x16a84(%rip), %rsi     # 0x1d2a4
movl $0x5e8, %edx            # imm = 0x5E8
leaq 0x189ed(%rip), %rcx     # 0x1f219
callq 0x10b0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x4b8(%rax)
je 0x6862
movq -0x8(%rbp), %rax
movq 0x4b8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x4a0(%rcx), %rdi
movq -0x8(%rbp), %rsi
movl $0x4d0, %edx            # imm = 0x4D0
callq *%rax
jmp 0x686b
movq -0x8(%rbp), %rdi
callq 0x1050
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)