// File: /workspace/github_cpp_makefile_star2_O1/vsklad[P]cgen/./bal/cnf/processor/cnfoptimizer.cpp
// Function: bal::CnfOptimizer::assign_variable_values_unoptimized()
inline bool CnfOptimizer::assign_variable_values_unoptimized() {
        clauses_.transaction_begin();
        
        const literalid_t* const variables = variables_.data();
        for (auto i = 0; i < variables_.size(); i++) {
            if (variable_t__literal_id(i) != variables[i]) {
                if (literal_t__is_constant(variables[i])) {
                    // unit clause
                    uint32_t unit_clause[_clause_size_memory_size(1)] = _clause_c1_make(literal_t__negated_onlyif(variable_t__literal_id(i), literal_t__is_constant_0(variables[i])));
                    Cnf::insertion_point_t insertion_point;
                    __insertion_point_t_init(insertion_point);
                    clauses_.find(unit_clause, insertion_point);
                    if (insertion_point.container_offset == CONTAINER_END) {
                        clauses_.append<true>(unit_clause, insertion_point);
                    } else {
                        // check that the value is the same, otherwise generate conflict
                        if (_clauses_offset_flags(clauses_data_, insertion_point.container_offset) != _clause_flags(unit_clause)) {
                            __print_conflict(variables_.data(), _clauses_offset_clause(clauses_data_, insertion_point.container_offset));
                            clauses_.transaction_rollback();
                            return false;
                        };
                    };
                } else if (literal_t__is_variable(variables[i])) {
                    // equality, 2 clauses
                    clauses_.append_clause_l(variable_t__literal_id(i), literal_t__negated(variables[i]));
                    clauses_.append_clause_l(literal_t__negated(variable_t__literal_id(i)), variables[i]);
                } else {
                    _assert_level_0(false);
                };
            };
        };
        
        clauses_.transaction_commit();
        return true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq 0x10(%rdi), %rax
cmpl $-0x1, 0x50(%rax)
jne 0x12a8f
movl 0x10(%rax), %ecx
movl %ecx, 0x50(%rax)
movq 0x28(%rax), %rcx
movl 0x8(%rcx), %ecx
movl %ecx, 0x54(%rax)
movl 0x38(%rax), %ecx
movl %ecx, 0x58(%rax)
movq 0xb8(%rdi), %rax
cmpl $0x0, 0x8(%rax)
sete %r14b
je 0x129f6
movq (%rax), %rsi
xorl %r15d, %r15d
leaq 0x4cb09(%rip), %r12     # 0x5f2f4
movq %rdi, -0x40(%rbp)
movq %rsi, -0x50(%rbp)
leaq 0x3(,%r15,2), %rdx
movl (%rsi,%r15,4), %ecx
cmpq %rcx, %rdx
je 0x129dc
cmpl $0x1, %ecx
ja 0x1291c
xorl %ecx, %ecx
cmpl $0x0, (%rsi,%r15,4)
setne %cl
shll $0x10, %ecx
addl $0x10001, %ecx          # imm = 0x10001
movl %ecx, -0x48(%rbp)
movl %edx, -0x44(%rbp)
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl %edx, -0x34(%rbp)
movq 0x10(%rdi), %rdi
movl 0x5c(%rdi), %esi
movl %esi, -0x34(%rbp)
movl %edx, -0x38(%rbp)
movl 0x38(%rdi), %esi
cmpq %rsi, %r15
jae 0x1284f
movq 0x30(%rdi), %rdx
movl (%rdx,%r15,4), %edx
cmpl $-0x1, %edx
je 0x1297b
movq 0x8(%rdi), %rsi
movl (%r12), %r8d
movl -0x44(%rbp), %r9d
incl %r8d
movl %edx, %r10d
movl %r8d, (%r12)
movzwl 0xc(%rsi,%r10,4), %r11d
movw $0x7fff, %bx            # imm = 0x7FFF
andw %bx, %r11w
je 0x12898
leaq (%rsi,%r10,4), %rbx
addq $0xc, %rbx
movzwl %r11w, %r11d
cmpl (%rbx,%r11,4), %r9d
jne 0x128b2
decl %r11d
xorl %r13d, %r13d
jmp 0x1289d
movw $0x1, %r13w
xorl %ebx, %ebx
cmpw %r11w, %r13w
setne %bl
movl $0xffffffff, %r11d      # imm = 0xFFFFFFFF
cmovbl %r11d, %ebx
jmp 0x128bc
movl $0x0, %ebx
sbbl %ebx, %ebx
orl $0x1, %ebx
leaq (%rsi,%r10,4), %r10
testl %ebx, %ebx
jle 0x128dd
movl 0x4(%r10), %r11d
movb $0x1, %r10b
cmpl $-0x1, %r11d
jne 0x128f2
movl $0x2, -0x30(%rbp)
movl %edx, -0x2c(%rbp)
jmp 0x128ec
js 0x12906
movl $0x3, -0x30(%rbp)
movl %edx, -0x2c(%rbp)
movl %edx, -0x38(%rbp)
xorl %r10d, %r10d
movl %edx, %r11d
incl %r8d
movl %r11d, %edx
testb %r10b, %r10b
jne 0x12867
jmp 0x12986
movl 0x8(%r10), %r11d
movb $0x1, %r10b
cmpl $-0x1, %r11d
jne 0x128f2
movl $0x1, -0x30(%rbp)
jmp 0x128d8
cmpl $-0x1, %ecx
je 0x12a70
leaq 0x2(,%r15,2), %rbx
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rdi
xorl $0x1, %ecx
movl %edx, -0x38(%rbp)
movl %ecx, -0x34(%rbp)
leaq -0x38(%rbp), %r13
movq %r13, %rsi
movl $0x2, %edx
callq 0x10fec
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x50(%rbp), %r14
movl (%r14,%r15,4), %eax
movl %ebx, -0x38(%rbp)
movl %eax, -0x34(%rbp)
movq %r13, %rsi
movl $0x2, %edx
callq 0x10fec
movq %r14, %rsi
movq -0x40(%rbp), %rdi
jmp 0x129dc
movl $0x0, -0x30(%rbp)
movl %r15d, -0x2c(%rbp)
movl -0x38(%rbp), %edx
leaq 0x4c95c(%rip), %rsi     # 0x5f2ec
movl $0xffffffff, %r8d       # imm = 0xFFFFFFFF
cmpq %r8, %rdx
jne 0x129a2
leaq 0x4c94e(%rip), %rsi     # 0x5f2f0
incl (%rsi)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
cmpq %rsi, %rdx
je 0x129c7
movq -0x40(%rbp), %rdi
movq 0x18(%rdi), %rsi
movq (%rsi), %rsi
xorl 0xc(%rsi,%rdx,4), %ecx
cmpl $0x10000, %ecx          # imm = 0x10000
jb 0x129d8
jmp 0x12a29
leaq -0x48(%rbp), %rsi
leaq -0x38(%rbp), %rdx
callq 0x13840
movq -0x40(%rbp), %rdi
movq -0x50(%rbp), %rsi
incq %r15
movq 0xb8(%rdi), %rax
movl 0x8(%rax), %ecx
cmpq %rcx, %r15
setae %r14b
jb 0x127f3
movq 0x10(%rdi), %rax
cmpl $-0x1, 0x50(%rax)
je 0x12aae
movq $-0x1, 0x50(%rax)
movl $0xffffffff, 0x58(%rax) # imm = 0xFFFFFFFF
andb $0x1, %r14b
movl %r14d, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq (%rsi,%rdx,4), %rsi
addq $0xc, %rsi
movq %rdi, %rbx
movq (%rax), %rdi
callq 0x103d6
movq 0x10(%rbx), %rbx
movl 0x50(%rbx), %esi
cmpl $-0x1, %esi
je 0x12acd
cmpl %esi, 0x10(%rbx)
jb 0x12acd
movl 0x58(%rbx), %edx
movl 0x54(%rbx), %ecx
movq (%rbx), %rax
movq %rbx, %rdi
callq *(%rax)
movq $-0x1, 0x50(%rbx)
movl $0xffffffff, 0x58(%rbx) # imm = 0xFFFFFFFF
jmp 0x12a13
leaq 0x3721b(%rip), %rdi     # 0x49c92
leaq 0x3137a(%rip), %rsi     # 0x43df8
leaq 0x31465(%rip), %rcx     # 0x43eea
movl $0x4e3, %edx            # imm = 0x4E3
callq 0xc180
leaq 0x31bb5(%rip), %rdi     # 0x4464b
leaq 0x30f57(%rip), %rsi     # 0x439f4
leaq 0x33c53(%rip), %rcx     # 0x466f7
movl $0x63, %edx
callq 0xc180
leaq 0x31b97(%rip), %rdi     # 0x4464c
leaq 0x30f38(%rip), %rsi     # 0x439f4
leaq 0x31583(%rip), %rcx     # 0x44046
movl $0x6a, %edx
callq 0xc180
leaq 0x33ddc(%rip), %rdi     # 0x468b0
leaq 0x30f19(%rip), %rsi     # 0x439f4
leaq 0x33e06(%rip), %rcx     # 0x468e8
movl $0x71, %edx
callq 0xc180