// File: /workspace/github_cpp_makefile_star2_O1/biotomas[P]ipasir/sat/picosat961/picosat-961/picosat.c
// Function: bcp
static void
bcp (PS * ps)
{
  int props = 0;
  assert (!ps->conflict);

  if (ps->mtcls)
    return;

  for (;;)
    {
      if (ps->ttail2 < ps->thead)	/* prioritize implications */
	{
	  props++;
	  prop2 (ps, NOTLIT (*ps->ttail2++));
	}
      else if (ps->ttail < ps->thead)	/* unit clauses or clauses with length > 2 */
	{
	  if (ps->conflict) break;
	  propl (ps, NOTLIT (*ps->ttail++));
	  if (ps->conflict) break;
	}
#ifndef NADC
      else if (ps->ttailado < ps->thead)
	{
	  if (ps->conflict) break;
	  propado (ps, LIT2VAR (*ps->ttailado++));
	  if (ps->conflict) break;
	}
#endif
      else
	break;		/* all assignments propagated, so break */
    }

  ps->propagations += props;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpq $0x0, 0x250(%rdi)
jne 0xe384
movq %rdi, %rbx
cmpq $0x0, 0x248(%rdi)
jne 0xe1e2
leaq 0x98(%rbx), %r15
movl $0x0, 0x4(%rsp)
movq 0xd0(%rbx), %rcx
movq 0xe8(%rbx), %rax
cmpq %rcx, %rax
jae 0xdf8e
movq 0x38(%rbx), %r14
leaq 0x8(%rax), %rcx
movq %rcx, 0xe8(%rbx)
movq (%rax), %rax
subq %r14, %rax
xorq $0x1, %rax
cmpb $-0x1, (%r14,%rax)
jne 0xe346
incl 0x4(%rsp)
movq 0x68(%rbx), %rcx
movl %eax, %edx
shlq $0x4, %rdx
movl 0x8(%rcx,%rdx), %r12d
testq %r12, %r12
je 0xdea4
addq %rax, %r14
movq (%rcx,%rdx), %r13
shlq $0x3, %r12
incq 0x458(%rbx)
movq -0x8(%r13,%r12), %rdx
movzbl (%rdx), %eax
cmpl $0x1, %eax
je 0xdf7f
cmpl $0xff, %eax
jne 0xdf51
cmpq %r15, 0x250(%rbx)
jne 0xdf3d
cmpl $0x0, 0xc4(%rbx)
je 0xe327
movl $0x0, 0xc4(%rbx)
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe87d
movq %rax, 0x250(%rbx)
jmp 0xdf7f
movq 0x38(%rbx), %rcx
movq %r14, %rax
subq %rcx, %rax
xorq $0x1, %rax
cmpb $0x1, (%rcx,%rax)
jne 0xe2ab
leaq 0x1(,%rax,2), %rax
movq %rbx, %rdi
movq %rdx, %rsi
movq %rax, %rdx
callq 0xe3e1
addq $-0x8, %r12
jne 0xdf02
jmp 0xdea4
movq 0xe0(%rbx), %rax
cmpq %rcx, %rax
jae 0xe1d6
cmpq $0x0, 0x250(%rbx)
jne 0xe1d6
movq 0x38(%rbx), %r14
leaq 0x8(%rax), %rcx
movq %rcx, 0xe0(%rbx)
movq (%rax), %rax
subq %r14, %rax
xorq $0x1, %rax
cmpb $-0x1, (%r14,%rax)
jne 0xe365
movq 0x58(%rbx), %rcx
movl %eax, %edx
movq (%rcx,%rdx,8), %r12
testq %r12, %r12
je 0xe1c8
addq %rax, %r14
leaq (%rcx,%rdx,8), %rax
incq 0x458(%rbx)
movl (%r12), %r8d
testq %r8, %r8
je 0xe1f1
movq %r12, %rdx
movq 0x18(%r12), %rsi
cmpq %r14, %rsi
je 0xe02f
cmpl $0x1, %r8d
je 0xe28c
movq %r14, 0x18(%rdx)
movq %rsi, 0x20(%rdx)
movq 0x8(%rdx), %rcx
movq 0x10(%rdx), %r12
movq %rcx, 0x10(%rdx)
movq %r12, 0x8(%rdx)
jmp 0xe041
cmpl $0x1, %r8d
je 0xe1a4
movq 0x8(%rdx), %r12
movq 0x20(%rdx), %rsi
cmpq 0x20(%rdx), %rsi
jne 0xe26d
cmpq %r14, 0x18(%rdx)
jne 0xe24e
cmpq 0x8(%rdx), %r12
jne 0xe22f
testb $0x1, 0x4(%rdx)
jne 0xe210
leaq 0x8(%rdx), %rbp
movb (%rsi), %cl
cmpb $0x1, %cl
jne 0xe0b9
movq 0x40(%rbx), %rcx
subq 0x38(%rbx), %rsi
movl %esi, %edi
shrl %edi
shlq $0x4, %rdi
movl 0x4(%rcx,%rdi), %ecx
testl %ecx, %ecx
je 0xe0a2
cmpl $0x0, 0x408(%rbx)
jne 0xe16a
cmpl 0x28(%rbx), %ecx
jae 0xe16a
movq 0x60(%rbx), %rcx
movl %esi, %esi
movq (%rcx,%rsi,8), %rdi
movq %rdi, 0x8(%rdx)
movq %rdx, (%rcx,%rsi,8)
jmp 0xe196
shlq $0x3, %r8
movl $0x28, %edi
cmpq $0x10, %r8
sete %r10b
jne 0xe0d1
movq %r14, %r9
jmp 0xe123
movq 0x28(%rdx), %r9
movq %r14, 0x28(%rdx)
cmpb $-0x1, (%r9)
je 0xe0e7
xorl %r10d, %r10d
movq %r9, %r13
jmp 0xe123
movl $0x18, %r11d
subq %r8, %r11
movl $0x30, %r8d
movq %r9, %r13
movq %r8, %rdi
addq %r11, %r8
cmpq $0x30, %r8
sete %r10b
je 0xe120
movq (%rdx,%rdi), %r9
movq %r13, (%rdx,%rdi)
leaq 0x8(%rdi), %r8
cmpb $-0x1, (%r9)
movq %r9, %r13
je 0xe0f9
jmp 0xe123
movq %r13, %r9
testb %r10b, %r10b
je 0xe16f
cmpq $0x29, %rdi
jl 0xe149
addq $0x8, %rdi
movq -0x10(%rdx,%rdi), %r13
movq %r9, -0x10(%rdx,%rdi)
addq $-0x8, %rdi
movq %r13, %r9
cmpq $0x30, %rdi
jg 0xe132
cmpq %r14, 0x18(%rdx)
jne 0xe2e9
cmpq 0x20(%rdx), %rsi
jne 0xe2ca
cmpb $-0x1, %cl
je 0xe1b3
movq %rbx, %rdi
callq 0xe3e1
movq %rbp, %rax
jmp 0xe199
cmpb $0x2, (%r13)
jae 0xe308
movq %r13, 0x18(%rdx)
movq 0x58(%rbx), %rcx
movl 0x38(%rbx), %esi
movl %r13d, %edi
subl %esi, %edi
movq (%rcx,%rdi,8), %rsi
movq %rsi, 0x8(%rdx)
movq %rdx, (%rcx,%rdi,8)
movq %r12, (%rax)
testq %r12, %r12
jne 0xdfea
jmp 0xe1c8
cmpq $0x0, 0x250(%rbx)
je 0xe1c1
jmp 0xe3a3
cmpq $0x0, 0x250(%rbx)
jne 0xe3c2
movq %rdx, 0x250(%rbx)
cmpq $0x0, 0x250(%rbx)
je 0xdea4
movslq 0x4(%rsp), %rax
addq %rax, 0x3d8(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x5aa2(%rip), %rdi      # 0x13c9a
leaq 0x40ad(%rip), %rsi      # 0x122ac
leaq 0x5a7c(%rip), %rcx      # 0x13c82
movl $0xfaf, %edx            # imm = 0xFAF
callq 0x10b0
leaq 0x519e(%rip), %rdi      # 0x133b5
leaq 0x408e(%rip), %rsi      # 0x122ac
leaq 0x5a5d(%rip), %rcx      # 0x13c82
movl $0xfcc, %edx            # imm = 0xFCC
callq 0x10b0
leaq 0x5aa4(%rip), %rdi      # 0x13cda
leaq 0x406f(%rip), %rsi      # 0x122ac
leaq 0x5a3e(%rip), %rcx      # 0x13c82
movl $0xfcb, %edx            # imm = 0xFCB
callq 0x10b0
leaq 0x5a72(%rip), %rdi      # 0x13cc7
leaq 0x4050(%rip), %rsi      # 0x122ac
leaq 0x5a1f(%rip), %rcx      # 0x13c82
movl $0xfca, %edx            # imm = 0xFCA
callq 0x10b0
leaq 0x5a3f(%rip), %rdi      # 0x13cb3
leaq 0x4031(%rip), %rsi      # 0x122ac
leaq 0x5a00(%rip), %rcx      # 0x13c82
movl $0xfc9, %edx            # imm = 0xFC9
callq 0x10b0
leaq 0x5a13(%rip), %rdi      # 0x13ca6
leaq 0x4012(%rip), %rsi      # 0x122ac
leaq 0x59e1(%rip), %rcx      # 0x13c82
movl $0xfb4, %edx            # imm = 0xFB4
callq 0x10b0
leaq 0x53fd(%rip), %rdi      # 0x136af
leaq 0x3ff3(%rip), %rsi      # 0x122ac
leaq 0x53d7(%rip), %rcx      # 0x13697
movl $0xf3d, %edx            # imm = 0xF3D
callq 0x10b0
leaq 0x59e2(%rip), %rdi      # 0x13cb3
leaq 0x3fd4(%rip), %rsi      # 0x122ac
leaq 0x59a3(%rip), %rcx      # 0x13c82
movl $0x1003, %edx           # imm = 0x1003
callq 0x10b0
leaq 0x59fd(%rip), %rdi      # 0x13ced
leaq 0x3fb5(%rip), %rsi      # 0x122ac
leaq 0x5984(%rip), %rcx      # 0x13c82
movl $0x1001, %edx           # imm = 0x1001
callq 0x10b0
leaq 0x59f1(%rip), %rdi      # 0x13d00
leaq 0x3f96(%rip), %rsi      # 0x122ac
leaq 0x5965(%rip), %rcx      # 0x13c82
movl $0x1010, %edx           # imm = 0x1010
callq 0x10b0
leaq 0x590f(%rip), %rdi      # 0x13c3d
leaq 0x3f77(%rip), %rsi      # 0x122ac
leaq 0x4ec2(%rip), %rcx      # 0x131fe
movl $0x6ab, %edx            # imm = 0x6AB
callq 0x10b0
leaq 0x5337(%rip), %rdi      # 0x13684
leaq 0x3f58(%rip), %rsi      # 0x122ac
leaq 0x533c(%rip), %rcx      # 0x13697
movl $0xf1e, %edx            # imm = 0xF1E
callq 0x10b0
leaq 0x5318(%rip), %rdi      # 0x13684
leaq 0x3f39(%rip), %rsi      # 0x122ac
leaq 0x5908(%rip), %rcx      # 0x13c82
movl $0xf97, %edx            # imm = 0xF97
callq 0x10b0
leaq 0x50a9(%rip), %rdi      # 0x13434
leaq 0x3f1a(%rip), %rsi      # 0x122ac
leaq 0x52dc(%rip), %rcx      # 0x13675
movl $0x10c7, %edx           # imm = 0x10C7
callq 0x10b0
leaq 0x508a(%rip), %rdi      # 0x13434
leaq 0x3efb(%rip), %rsi      # 0x122ac
leaq 0x58ca(%rip), %rcx      # 0x13c82
movl $0xfbf, %edx            # imm = 0xFBF
callq 0x10b0
leaq 0x506b(%rip), %rdi      # 0x13434
leaq 0x3edc(%rip), %rsi      # 0x122ac
leaq 0x58ab(%rip), %rcx      # 0x13c82
movl $0x1006, %edx           # imm = 0x1006
callq 0x10b0