// File: /workspace/github_cpp_makefile_star2_O1/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 0x282ba
movq %rdi, %rbx
cmpq $0x0, 0x20(%rdi)
je 0x282ba
movq 0x48(%rbx), %rdi
cmpq %rdi, 0x40(%rbx)
je 0x282c9
movq 0x28(%rbx), %r9
movq 0x30(%rbx), %rax
cmpq %rax, %r9
je 0x282c9
testq %rsi, %rsi
je 0x2806b
cmpq %rsi, -0x8(%rax)
je 0x28079
cmpl $-0x1, %edx
je 0x280ca
cmpl %edx, -0x4(%rdi)
sete %dil
jmp 0x28091
cmpl $-0x1, %edx
je 0x28096
movl -0x4(%rdi), %edi
cmpl $-0x1, %edi
sete %r8b
cmpl %edx, %edi
sete %dil
orb %r8b, %dil
testb %dil, %dil
je 0x280ca
movq 0x48(%rbx), %rcx
cmpl %edx, -0x4(%rcx)
jne 0x281ac
movq 0x30(%rbx), %rcx
cmpq %rsi, -0x8(%rcx)
je 0x281ac
testq %rsi, %rsi
je 0x28326
movq %rsi, -0x8(%rax)
movq 0x48(%rbx), %rax
movl %edx, -0x4(%rax)
jmp 0x282ba
testq %rsi, %rsi
setne %r8b
cmpl $-0x1, %edx
sete %dil
orb %r8b, %dil
je 0x282e8
movq %rsi, -0x8(%rax)
movq 0x48(%rbx), %r13
movl %edx, -0x4(%r13)
movb $0x72, %dl
testb %cl, %cl
jne 0x28119
movq 0x28(%rbx), %rax
movq 0x30(%rbx), %rcx
subq %rax, %rcx
movb $0x65, %dl
cmpq $0x9, %rcx
jb 0x28119
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), %rax
leaq (%r15,%rax), %r12
cmpb $0x0, 0xe1(%r15,%rax)
jne 0x2815f
movq %r12, %rdi
movl $0x20, %esi
movl %edx, -0x3c(%rbp)
callq 0xc2a0
movl -0x3c(%rbp), %edx
movb %al, 0xe0(%r12)
movb $0x1, 0xe1(%r12)
subq %r14, %r13
movb $0x2e, 0xe0(%r12)
movq (%r15), %rax
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 0xc320
movq 0x10(%rbx), %rdi
leaq -0x2a(%rbp), %rsi
jmp 0x2826e
movq 0x30(%rbx), %rcx
cmpq %r9, %rcx
je 0x28307
cmpq %rsi, -0x8(%rcx)
jne 0x28307
testq %rsi, %rsi
setne %cl
cmpl $-0x1, %edx
sete %dil
orb %cl, %dil
je 0x282e8
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), %rax
leaq (%r15,%rax), %r12
cmpb $0x0, 0xe1(%r15,%rax)
jne 0x28225
movq %r12, %rdi
movl $0x20, %esi
callq 0xc2a0
movb %al, 0xe0(%r12)
movb $0x1, 0xe1(%r12)
subq %r13, %r14
movb $0x2e, 0xe0(%r12)
movq (%r15), %rax
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 0xc320
movq 0x10(%rbx), %rdi
leaq -0x2c(%rbp), %rsi
movb $0x20, (%rsi)
movl $0x1, %edx
callq 0xc320
movq 0x10(%rbx), %rdi
leaq 0x19aec(%rip), %rdx     # 0x41d72
movq -0x38(%rbp), %rsi
callq 0x1057f
movq 0x10(%rbx), %rbx
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0xc2a0
movsbl %al, %esi
movq %rbx, %rdi
callq 0xc030
movq %rax, %rdi
callq 0xc1a0
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x20ab3(%rip), %rdi     # 0x48d83
leaq 0x2094a(%rip), %rsi     # 0x48c21
leaq 0x20acc(%rip), %rcx     # 0x48daa
movl $0x45, %edx
callq 0xc180
leaq 0x20b78(%rip), %rdi     # 0x48e67
leaq 0x2092b(%rip), %rsi     # 0x48c21
leaq 0x20b0b(%rip), %rcx     # 0x48e08
movl $0x3e, %edx
callq 0xc180
leaq 0x20a42(%rip), %rdi     # 0x48d50
leaq 0x2090c(%rip), %rsi     # 0x48c21
leaq 0x209c5(%rip), %rcx     # 0x48ce1
movl $0x8b, %edx
callq 0xc180
leaq 0x209a0(%rip), %rdi     # 0x48ccd
leaq 0x208ed(%rip), %rsi     # 0x48c21
leaq 0x209a6(%rip), %rcx     # 0x48ce1
movl $0x88, %edx
callq 0xc180
nop