// File: /workspace/github_cpp_makefile_star2_O3/biotomas[P]ipasir/sat/picosat961/picosat-961/picosat.c
// Function: picosat_deref_partial
int
picosat_deref_partial (PS * ps, int int_lit) 
{
  check_ready (ps);
  check_sat_state (ps);
  ABORTIF (!int_lit, "API usage: can not partial deref zero literal");
  ABORTIF (ps->mtcls, "API usage: deref partial after empty clause generated");
  ABORTIF (!ps->saveorig, "API usage: 'picosat_save_original_clauses' missing");

#ifdef STATS
  ps->derefs++;
#endif

  if (!ps->partial)
    minautarky (ps);

  return pderef (ps, int_lit);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %esi, %ebx
movq %rdi, %r14
callq 0x441c
movl (%r14), %edi
callq 0x8c89
testl %ebx, %ebx
je 0xc2c2
cmpq $0x0, 0x248(%r14)
jne 0xc2c7
cmpl $0x0, 0x228(%r14)
je 0xc2cc
cmpl $0x0, 0x22c(%r14)
jne 0xc24d
movl %ebx, 0x14(%rsp)
movl 0x2c(%r14), %eax
addl %eax, %eax
leaq 0x4(,%rax,4), %rsi
movq %r14, %rdi
callq 0x9cfe
movq %rax, %r15
movl 0x2c(%r14), %eax
addl %eax, %eax
leaq 0x4(,%rax,4), %rdx
movl $0x0, 0xc(%rsp)
movq %r15, %rdi
xorl %esi, %esi
callq 0x10d0
movl 0x2c(%r14), %eax
leaq (%r15,%rax,4), %r15
movq 0x210(%r14), %r13
movq 0x218(%r14), %rcx
cmpq %rcx, %r13
jae 0xc1c7
movq %r13, %rax
movslq (%rax), %rdx
incl (%r15,%rdx,4)
addq $0x4, %rax
cmpq %rcx, %rax
jb 0xc08a
movl (%r15), %eax
cmpl 0x438(%r14), %eax
jne 0xc2d1
movl $0x0, 0xc(%rsp)
movl (%r13), %r12d
testl %r12d, %r12d
je 0xc2a3
leaq 0x4(%r13), %rbp
movl $0x0, 0x8(%rsp)
movl $0x0, 0x10(%rsp)
movq %r14, %rdi
movl %r12d, %esi
callq 0x8cd1
testl %eax, %eax
js 0xc152
movslq %r12d, %rbx
je 0xc0f4
movl (%r15,%rbx,4), %eax
movl %eax, 0x10(%rsp)
movl %r12d, 0x8(%rsp)
movq %r14, %rdi
movl %r12d, %esi
callq 0xc2f0
testl %eax, %eax
jg 0xc188
js 0xc152
movq 0x38(%r14), %rax
leal (%r12,%r12), %ecx
movl $0x1, %edx
subl %ecx, %edx
testl %r12d, %r12d
cmovnsl %ecx, %edx
cmpb $0x0, (%rax,%rdx)
je 0xc284
js 0xc152
movl (%r15,%rbx,4), %eax
movl 0x8(%rsp), %esi
testl %esi, %esi
sete %cl
movl 0x10(%rsp), %edi
cmpl %edi, %eax
seta %dl
orb %cl, %dl
cmovnel %eax, %edi
movl %edi, 0x10(%rsp)
cmovel %esi, %r12d
movl %r12d, 0x8(%rsp)
movl (%rbp), %r12d
addq $0x4, %rbp
testl %r12d, %r12d
jne 0xc0d3
movl 0x8(%rsp), %edx
testl %edx, %edx
je 0xc2a3
movq 0x40(%r14), %rax
movl %edx, %ecx
negl %ecx
cmovsl %edx, %ecx
shlq $0x4, %rcx
orw $0x2000, (%rax,%rcx)    # imm = 0x2000
incl 0xc(%rsp)
movl (%r13), %eax
testl %eax, %eax
je 0xc1ae
cltq
movl (%r15,%rax,4), %ecx
testl %ecx, %ecx
je 0xc265
decl %ecx
movl %ecx, (%r15,%rax,4)
movl 0x4(%r13), %eax
addq $0x4, %r13
jmp 0xc18c
addq $0x4, %r13
cmpq 0x218(%r14), %r13
jb 0xc0b2
movl 0x2c(%r14), %eax
movl %eax, %ecx
jmp 0xc1d9
movl (%r15), %edx
movl %eax, %ecx
cmpl 0x438(%r14), %edx
jne 0xc2d1
shlq $0x2, %rax
subq %rax, %r15
addl %ecx, %ecx
leaq 0x4(,%rcx,4), %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x9c31
movl $0x1, 0x22c(%r14)
cmpl $0x0, 0x20(%r14)
movl 0x14(%rsp), %ebx
je 0xc24d
movq 0x10(%r14), %rdi
movq 0x18(%r14), %rdx
movl 0x2c(%r14), %r8d
xorpd %xmm0, %xmm0
testl %r8d, %r8d
movl 0xc(%rsp), %ecx
je 0xc23f
movl %ecx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %rax, %xmm0
cvtsi2sd %r8, %xmm1
divsd %xmm1, %xmm0
mulsd 0x6eb1(%rip), %xmm0     # 0x130f0
leaq 0x979c(%rip), %rsi      # 0x159e2
movb $0x1, %al
callq 0x1140
movq %r14, %rdi
movl %ebx, %esi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xc2f0
leaq 0x9768(%rip), %rdi      # 0x159d4
leaq 0x7009(%rip), %rsi      # 0x1327c
leaq 0x9729(%rip), %rcx      # 0x159a3
movl $0x1b93, %edx           # imm = 0x1B93
callq 0x10b0
leaq 0x828c(%rip), %rdi      # 0x14517
leaq 0x6fea(%rip), %rsi      # 0x1327c
leaq 0x970a(%rip), %rcx      # 0x159a3
movl $0x1b80, %edx           # imm = 0x1B80
callq 0x10b0
leaq 0x9725(%rip), %rdi      # 0x159cf
leaq 0x6fcb(%rip), %rsi      # 0x1327c
leaq 0x96eb(%rip), %rcx      # 0x159a3
movl $0x1b8b, %edx           # imm = 0x1B8B
callq 0x10b0
callq 0x1614
callq 0x15dc
callq 0x15f8
leaq 0x96e1(%rip), %rdi      # 0x159b9
leaq 0x6f9d(%rip), %rsi      # 0x1327c
leaq 0x96bd(%rip), %rcx      # 0x159a3
movl $0x1b63, %edx           # imm = 0x1B63
callq 0x10b0