// File: /workspace/github_cpp_makefile_star2_O3/vsklad[P]cgen/./bal/cnf/tracer/cnfnativetracer.hpp
// Function: bal::CnfNativeTracer::process_clause(unsigned int const*, unsigned int, bool)
void process_clause(const uint32_t* const p_clause, const container_offset_t offset, const bool is_resolvent) override {
            if (options_ & TRACE_CLAUSE_EVALUATIONS && p_cnf_ != nullptr) {
                if (!is_current_clause(p_clause, offset)) {
                    set_current_clause(p_clause, offset);
                    const char action = (is_resolvent) ? 'r' :
                        (clauses_.size() > 1 && clauses_[clauses_.size() - 2] != nullptr) ? '+' : 'e';
                    write_action(action);
                    write_clause(p_clause);
                    stream << std::endl;
                } else if (offset == offsets_.back() && p_clause != clauses_.back()) {
                    // changing p_clause with the same offset is fine
                    _assert_level_0(p_clause != nullptr);
                    set_current_clause(p_clause, offset);
                } else {
                    _assert_level_0(clauses_.size() > 0 && clauses_.back() == p_clause);
                    set_current_clause(p_clause, offset);
                    write_action('u', 1);
                    write_clause(p_clause);
                    stream << std::endl;
                };
            };
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
testb $0x2, 0x18(%rdi)
je 0x26a47
movq %rdi, %rbx
cmpq $0x0, 0x20(%rdi)
je 0x26a47
movq 0x48(%rbx), %rdi
cmpq %rdi, 0x40(%rbx)
je 0x26a56
movq 0x30(%rbx), %rax
cmpq %rax, 0x28(%rbx)
je 0x26a56
testq %rsi, %rsi
je 0x26802
cmpq %rsi, -0x8(%rax)
je 0x26848
cmpl $-0x1, %edx
je 0x2688b
cmpl %edx, -0x4(%rdi)
jne 0x2683e
cmpq %rsi, -0x8(%rax)
je 0x2694e
testq %rsi, %rsi
jne 0x26878
leaq 0x204b7(%rip), %rdi     # 0x46cdd
leaq 0x20404(%rip), %rsi     # 0x46c31
leaq 0x204bd(%rip), %rcx     # 0x46cf1
movl $0x88, %edx
callq 0xb180
testq %rsi, %rsi
jne 0x2688b
jmp 0x26a75
movl -0x4(%rdi), %r9d
cmpl $-0x1, %edx
je 0x26865
cmpl $-0x1, %r9d
sete %dil
cmpl %edx, %r9d
sete %r8b
orb %dil, %r8b
je 0x2688b
cmpl %edx, %r9d
jne 0x2694e
cmpq %rsi, -0x8(%rax)
je 0x2694e
addq $-0x8, %rax
movq %rsi, (%rax)
movq 0x48(%rbx), %rax
movl %edx, -0x4(%rax)
jmp 0x26a47
movq %rsi, -0x8(%rax)
movq 0x48(%rbx), %r13
movl %edx, -0x4(%r13)
movb $0x72, %dl
testb %cl, %cl
jne 0x268c3
movq 0x28(%rbx), %rax
movq 0x30(%rbx), %rcx
subq %rax, %rcx
movb $0x65, %dl
cmpq $0x9, %rcx
jb 0x268c3
cmpq $0x0, -0x10(%rax,%rcx)
movl $0x65, %eax
movl $0x2b, %edx
cmovel %eax, %edx
movq %rsi, -0x38(%rbp)
movq 0x10(%rbx), %r15
movq 0x40(%rbx), %r14
movq (%r15), %rax
movq -0x18(%rax), %rcx
leaq (%r15,%rcx), %r12
cmpb $0x0, 0xe1(%r15,%rcx)
jne 0x26904
movq %r12, %rdi
movl $0x20, %esi
movl %edx, -0x3c(%rbp)
callq 0xb2a0
movl -0x3c(%rbp), %edx
movb $0x1, 0xe1(%r12)
movq (%r15), %rax
subq %r14, %r13
movb $0x2e, 0xe0(%r12)
movq -0x18(%rax), %rax
shlq $0x1e, %r13
movabsq $0x100000000, %rcx      # imm = 0x100000000
addq %r13, %rcx
sarq $0x20, %rcx
movq %rcx, 0x10(%r15,%rax)
leaq -0x29(%rbp), %rsi
movb %dl, (%rsi)
movl $0x1, %edx
movq %r15, %rdi
callq 0xb320
movq 0x10(%rbx), %rdi
leaq -0x2a(%rbp), %rsi
jmp 0x269fb
cmpq %rsi, -0x8(%rax)
jne 0x26a94
testq %rsi, %rsi
setne %cl
cmpl $-0x1, %edx
sete %dil
orb %cl, %dil
je 0x26a75
movq %rsi, -0x38(%rbp)
movq %rsi, -0x8(%rax)
movq 0x48(%rbx), %r14
movl %edx, -0x4(%r14)
movq 0x10(%rbx), %r15
movq 0x40(%rbx), %r13
movq (%r15), %rax
movq -0x18(%rax), %rcx
leaq (%r15,%rcx), %r12
cmpb $0x0, 0xe1(%r15,%rcx)
jne 0x269b5
movq %r12, %rdi
movl $0x20, %esi
callq 0xb2a0
movb $0x1, 0xe1(%r12)
movq (%r15), %rax
subq %r13, %r14
movb $0x2e, 0xe0(%r12)
movq -0x18(%rax), %rax
shlq $0x1e, %r14
movabsq $0x200000000, %rcx      # imm = 0x200000000
addq %r14, %rcx
sarq $0x20, %rcx
movq %rcx, 0x10(%r15,%rax)
leaq -0x2b(%rbp), %rsi
movb $0x75, (%rsi)
movl $0x1, %edx
movq %r15, %rdi
callq 0xb320
movq 0x10(%rbx), %rdi
leaq -0x2c(%rbp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
callq 0xb320
movq 0x10(%rbx), %rdi
leaq 0x1934b(%rip), %rdx     # 0x3fd5e
movq -0x38(%rbp), %rsi
callq 0xf214
movq 0x10(%rbx), %rbx
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0xb2a0
movsbl %al, %esi
movq %rbx, %rdi
callq 0xb030
movq %rax, %rdi
callq 0xb1a0
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x20336(%rip), %rdi     # 0x46d93
leaq 0x201cd(%rip), %rsi     # 0x46c31
leaq 0x2034f(%rip), %rcx     # 0x46dba
movl $0x45, %edx
callq 0xb180
leaq 0x203fb(%rip), %rdi     # 0x46e77
leaq 0x201ae(%rip), %rsi     # 0x46c31
leaq 0x2038e(%rip), %rcx     # 0x46e18
movl $0x3e, %edx
callq 0xb180
leaq 0x202c5(%rip), %rdi     # 0x46d60
leaq 0x2018f(%rip), %rsi     # 0x46c31
leaq 0x20248(%rip), %rcx     # 0x46cf1
movl $0x8b, %edx
callq 0xb180
nop