// File: /workspace/github_cpp_makefile_star2_O3/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 %r12
pushq %rbx
movq %rdi, %rbx
callq 0x441c
testq %rbx, %rbx
je 0x6de6
cmpl $0x0, (%rbx)
je 0x6de6
movq 0x1e0(%rbx), %rsi
movq 0x1e8(%rbx), %rax
movq %rsi, %r15
cmpq %rax, %rsi
jne 0x6913
movq 0x1f8(%rbx), %r15
leaq 0x1e8(%rbx), %r14
cmpq 0x200(%rbx), %r15
je 0x6979
movl $0x18, %r12d
movq (%r15), %rsi
testq %rsi, %rsi
je 0x6959
movl (%rsi), %eax
movl 0x4(%rsi), %ecx
andl $0x2, %ecx
cmpq $0x3, %rax
leaq 0x18(%rcx,%rcx), %rcx
cmovbq %r12, %rcx
leaq (%rcx,%rax,8), %rdx
movq %rbx, %rdi
callq 0x9c31
movq 0x1e8(%rbx), %rax
addq $0x8, %r15
cmpq %rax, %r15
jne 0x6969
movq 0x1f8(%rbx), %r15
cmpq 0x200(%rbx), %r15
jne 0x6929
movq 0x1e0(%rbx), %rsi
movq 0x1f0(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
xorl %r15d, %r15d
movq %r15, 0x1e0(%rbx)
movq 0x1f8(%rbx), %rsi
movq 0x208(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r15, 0x20(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r14)
movups %xmm0, (%r14)
testl $0x7fffffff, 0x2c(%rbx) # imm = 0x7FFFFFFF
je 0x6a14
movl $0x2, %ebp
movq 0x68(%rbx), %rax
movl %ebp, %ecx
shlq $0x4, %rcx
leaq (%rax,%rcx), %r14
movq (%rax,%rcx), %rsi
testq %rsi, %rsi
je 0x69fd
movb 0xc(%r14), %cl
movl $0x1, %eax
shll %cl, %eax
movslq %eax, %rdx
shlq $0x3, %rdx
movq %rbx, %rdi
callq 0x9c31
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
incl %ebp
movl 0x2c(%rbx), %eax
leal 0x1(,%rax,2), %eax
cmpl %eax, %ebp
jbe 0x69cc
movq 0x410(%rbx), %rsi
movl 0x418(%rbx), %edx
shlq $0x3, %rdx
movq %rbx, %rdi
callq 0x9c31
xorl %r14d, %r14d
movq %r14, 0x410(%rbx)
movq 0x58(%rbx), %rsi
movl 0x30(%rbx), %edx
addl %edx, %edx
shlq $0x3, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x58(%rbx)
movq 0x60(%rbx), %rsi
movl 0x30(%rbx), %edx
addl %edx, %edx
shlq $0x3, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x60(%rbx)
movq 0x68(%rbx), %rsi
movl 0x30(%rbx), %edx
addl %edx, %edx
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x68(%rbx)
movq 0x38(%rbx), %rsi
movl 0x30(%rbx), %edx
addl %edx, %edx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x38(%rbx)
movq 0x50(%rbx), %rsi
movl 0x30(%rbx), %edx
addl %edx, %edx
shlq $0x2, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x50(%rbx)
movq 0x40(%rbx), %rsi
movl 0x30(%rbx), %edx
shlq $0x4, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x40(%rbx)
movq 0x48(%rbx), %rsi
movl 0x30(%rbx), %edx
shlq $0x3, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x48(%rbx)
movq 0xc8(%rbx), %rsi
movq 0xd8(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0xc8(%rbx)
movq 0x1c8(%rbx), %rsi
movq 0x1d8(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x1c8(%rbx)
movq 0xf8(%rbx), %rsi
movq 0x110(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0xf8(%rbx)
movq 0x118(%rbx), %rsi
movq 0x128(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x118(%rbx)
movq 0x130(%rbx), %rsi
movq 0x140(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x130(%rbx)
movq 0x148(%rbx), %rsi
movq 0x158(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x148(%rbx)
movq 0x160(%rbx), %rsi
movq 0x170(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x160(%rbx)
movq 0x178(%rbx), %rsi
movslq 0x180(%rbx), %rdx
shlq $0x2, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x178(%rbx)
movq 0x188(%rbx), %rsi
movslq 0x190(%rbx), %rdx
shlq $0x2, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x188(%rbx)
movq 0x198(%rbx), %rsi
movslq 0x1a4(%rbx), %rdx
shlq $0x2, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x198(%rbx)
movq 0x1a8(%rbx), %rsi
movslq 0x1b0(%rbx), %rdx
shlq $0x2, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x1a8(%rbx)
movq 0x258(%rbx), %rsi
movq 0x268(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x258(%rbx)
movq 0x270(%rbx), %rsi
movq 0x280(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x270(%rbx)
movq 0x288(%rbx), %rsi
movq 0x298(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x288(%rbx)
movq 0x2a0(%rbx), %rsi
movq 0x2b0(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x2a0(%rbx)
movq 0x2b8(%rbx), %rsi
movq 0x2c8(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x2b8(%rbx)
movq 0x2d0(%rbx), %rsi
movq 0x2e0(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x2d0(%rbx)
movq 0x2e8(%rbx), %rsi
movq 0x2f8(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x2e8(%rbx)
movq 0x470(%rbx), %rsi
movq 0x480(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x470(%rbx)
movq 0x210(%rbx), %rsi
movq 0x220(%rbx), %rdx
subq %rsi, %rdx
movq %rbx, %rdi
callq 0x9c31
movq %r14, 0x210(%rbx)
movq %rbx, %rdi
callq 0x1083e
movq 0x360(%rbx), %rsi
movslq 0x370(%rbx), %rdx
movq %rbx, %rdi
callq 0x9c31
movq 0x368(%rbx), %rsi
movslq 0x370(%rbx), %rdx
movq %rbx, %rdi
callq 0x9c31
leaq 0xe2b8(%rip), %rdi      # 0x15055
callq 0x1030
testq %rax, %rax
jne 0x6db1
cmpq $0x0, 0x328(%rbx)
jne 0x6deb
movq 0x4b8(%rbx), %rax
testq %rax, %rax
je 0x6dd6
movq 0x4a0(%rbx), %rdi
movl $0x4d0, %edx            # imm = 0x4D0
movq %rbx, %rsi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmpq *%rax
movq %rbx, %rdi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x1050
callq 0x133c
leaq 0xe268(%rip), %rdi      # 0x1505a
leaq 0xc483(%rip), %rsi      # 0x1327c
leaq 0xe280(%rip), %rcx      # 0x15080
movl $0x5e8, %edx            # imm = 0x5E8
callq 0x10b0