// File: /workspace/github_cpp_makefile_star2_O2/biotomas[P]ipasir/sat/picosat961/picosat-961/picosat.c
// Function: picosat_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
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0x3b54
testq %rbx, %rbx
je 0x6301
cmpl $0x0, (%rbx)
je 0x6301
movq 0x1e0(%rbx), %r15
movq 0x1e8(%rbx), %rax
cmpq %rax, %r15
jne 0x5e3f
movq 0x1f8(%rbx), %r15
leaq 0x1e8(%rbx), %r14
cmpq 0x200(%rbx), %r15
je 0x5e78
movq (%r15), %rsi
testq %rsi, %rsi
je 0x5e66
movq %rbx, %rdi
callq 0xef0b
movq 0x1e8(%rbx), %rax
addq $0x8, %r15
cmpq %rax, %r15
jne 0x5e46
movq 0x1f8(%rbx), %r15
jmp 0x5e46
movq 0x1e0(%rbx), %rsi
movq 0x1f0(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x1e0(%rbx)
movq 0x1f8(%rbx), %rsi
movq 0x208(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
xorps %xmm0, %xmm0
andq $0x0, 0x20(%r14)
movups %xmm0, 0x10(%r14)
movups %xmm0, (%r14)
pushq $0x2
popq %rbp
pushq $0x1
popq %r14
movl 0x2c(%rbx), %eax
leal 0x1(,%rax,2), %eax
cmpl %eax, %ebp
ja 0x5f12
movq 0x68(%rbx), %rax
movl %ebp, %ecx
shlq $0x4, %rcx
leaq (%rax,%rcx), %r15
movq (%rax,%rcx), %rsi
testq %rsi, %rsi
je 0x5f07
movb 0xc(%r15), %cl
movl %r14d, %eax
shll %cl, %eax
movslq %eax, %rdx
shlq $0x3, %rdx
movq %rbx, %rdi
callq 0x8e83
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
incl %ebp
jmp 0x5eca
movq 0x410(%rbx), %rsi
movl 0x418(%rbx), %edx
shlq $0x3, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x410(%rbx)
movq 0x58(%rbx), %rsi
movl 0x30(%rbx), %edx
addl %edx, %edx
shlq $0x3, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x58(%rbx)
movq 0x60(%rbx), %rsi
movl 0x30(%rbx), %edx
addl %edx, %edx
shlq $0x3, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x60(%rbx)
movq 0x68(%rbx), %rsi
movl 0x30(%rbx), %edx
addl %edx, %edx
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x68(%rbx)
movq 0x38(%rbx), %rsi
movl 0x30(%rbx), %edx
addl %edx, %edx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x38(%rbx)
movq 0x50(%rbx), %rsi
movl 0x30(%rbx), %edx
addl %edx, %edx
shlq $0x2, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x50(%rbx)
movq 0x40(%rbx), %rsi
movl 0x30(%rbx), %edx
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x40(%rbx)
movq 0x48(%rbx), %rsi
movl 0x30(%rbx), %edx
shlq $0x3, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x48(%rbx)
movq 0xc8(%rbx), %rsi
movq 0xd8(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0xc8(%rbx)
movq 0x1c8(%rbx), %rsi
movq 0x1d8(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x1c8(%rbx)
movq 0xf8(%rbx), %rsi
movq 0x110(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0xf8(%rbx)
movq 0x118(%rbx), %rsi
movq 0x128(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x118(%rbx)
movq 0x130(%rbx), %rsi
movq 0x140(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x130(%rbx)
movq 0x148(%rbx), %rsi
movq 0x158(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x148(%rbx)
movq 0x160(%rbx), %rsi
movq 0x170(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x160(%rbx)
movq 0x178(%rbx), %rsi
movslq 0x180(%rbx), %rdx
shlq $0x2, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x178(%rbx)
movq 0x188(%rbx), %rsi
movslq 0x190(%rbx), %rdx
shlq $0x2, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x188(%rbx)
movq 0x198(%rbx), %rsi
movslq 0x1a4(%rbx), %rdx
shlq $0x2, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x198(%rbx)
movq 0x1a8(%rbx), %rsi
movslq 0x1b0(%rbx), %rdx
shlq $0x2, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x1a8(%rbx)
movq 0x258(%rbx), %rsi
movq 0x268(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x258(%rbx)
movq 0x270(%rbx), %rsi
movq 0x280(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x270(%rbx)
movq 0x288(%rbx), %rsi
movq 0x298(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x288(%rbx)
movq 0x2a0(%rbx), %rsi
movq 0x2b0(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x2a0(%rbx)
movq 0x2b8(%rbx), %rsi
movq 0x2c8(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x2b8(%rbx)
movq 0x2d0(%rbx), %rsi
movq 0x2e0(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x2d0(%rbx)
movq 0x2e8(%rbx), %rsi
movq 0x2f8(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x2e8(%rbx)
movq 0x470(%rbx), %rsi
movq 0x480(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x470(%rbx)
movq 0x210(%rbx), %rsi
movq 0x220(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x8e83
andq $0x0, 0x210(%rbx)
movq %rbx, %rdi
callq 0xef2c
movq 0x360(%rbx), %rsi
movslq 0x370(%rbx), %rdx
movq %rbx, %rdi
callq 0x8e83
movq 0x368(%rbx), %rsi
movslq 0x370(%rbx), %rdx
movq %rbx, %rdi
callq 0x8e83
leaq 0xcd99(%rip), %rdi      # 0x1304d
callq 0x1030
testq %rax, %rax
jne 0x62c8
cmpq $0x0, 0x328(%rbx)
jne 0x631c
movq 0x4b8(%rbx), %rax
testq %rax, %rax
je 0x62ef
movq 0x4a0(%rbx), %rdi
movl $0x4d0, %edx            # imm = 0x4D0
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x1050
movq 0x11cf0(%rip), %rax     # 0x17ff8
movq (%rax), %rsi
leaq 0xcd05(%rip), %rdi      # 0x13017
callq 0x10c0
callq 0x1060
leaq 0xcd2f(%rip), %rdi      # 0x13052
leaq 0xaf4a(%rip), %rsi      # 0x11274
leaq 0xcd47(%rip), %rcx      # 0x13078
movl $0x5e8, %edx            # imm = 0x5E8
callq 0x10b0