// File: /workspace/github_cpp_makefile_star2_O3/vsklad[P]cgen/./bal/cnf/cnf/cnfclausescontainer.hpp
// Function: bal::CnfClausesIndexedContainer<false>::append_clause(unsigned int const*, unsigned short)
inline void append_clause(const literalid_t* const literals, const clause_size_t literals_size) {
            this->reserve(_clauses_offset_size_memory_size(literals_size));
            uint32_t* const p_clause = _clauses_offset_clause(this->data_, this->size_);
            std::copy(literals, literals + literals_size, _clause_literals(p_clause));
            
            const clause_size_t clause_size = normalize_clause_literals(_clause_literals(p_clause), literals_size);
            clause_flags_t clause_flags = 0;
            
            // if necessary, unnegate the literals and calculate the aggregated flag
            if (_clause_size_is_aggregated(clause_size)) {
                uint16_t clause_bitmap = 0;
                for (auto i = 0; i < clause_size; i++) {
                    if (literal_t__is_unnegated(_clause_literal(p_clause, i))) {
                        clause_bitmap |= 0x1 << i;
                    } else {
                        literal_t__unnegate(_clause_literal(p_clause, i));
                    };
                };
                clause_flags = 0x1 << clause_bitmap;
            };
            _clause_header_set(p_clause, clause_flags, clause_size);
            
            insertion_point_t insertion_point;
            __insertion_point_t_init(insertion_point);
            append<false>(p_clause, insertion_point);
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl %edx, %r15d
movq %rdi, %r14
movl 0x10(%rdi), %eax
movl 0x20(%rdi), %ecx
leal (%r15,%rax), %ebx
addl $0x4, %ebx
cmpl %ebx, %ecx
movq %rdi, -0x30(%rbp)
jae 0xfce0
movl %ecx, %edx
shrl %edx
addl %edx, %ebx
movq 0x8(%r14), %r12
cmpl %ebx, %ecx
je 0xfd3c
testq %r12, %r12
je 0xfce6
movq %rsi, %r13
testl %ebx, %ebx
je 0xfd18
movl %ebx, %esi
shlq $0x2, %rsi
movq %r12, %rdi
callq 0xb470
testq %rax, %rax
je 0xfdf2
movq %rax, %r12
movq %rax, 0x8(%r14)
movl 0x10(%r14), %eax
jmp 0xfd35
movq 0x8(%r14), %r12
jmp 0xfd3c
testl %ebx, %ebx
je 0xfde0
movq %rsi, %r13
movl %ebx, %edi
shlq $0x2, %rdi
callq 0xb380
movq %rax, 0x8(%r14)
testq %rax, %rax
je 0xfe11
movq %rax, %r12
movl $0x0, 0x10(%r14)
xorl %eax, %eax
jmp 0xfd35
movq %r12, %rdi
callq 0xb350
movq $0x0, 0x8(%r14)
movl $0x0, 0x10(%r14)
xorl %eax, %eax
xorl %r12d, %r12d
movq %r13, %rsi
movl %ebx, 0x20(%r14)
movl %eax, %r14d
leaq (%r12,%r14,4), %r13
addq $0x10, %r13
movzwl %r15w, %ebx
testw %r15w, %r15w
je 0xfd60
leal (,%rbx,4), %edx
movq %r13, %rdi
callq 0xb450
leaq (%r12,%r14,4), %r14
movq %r13, %rdi
movl %ebx, %esi
callq 0xff6a
xorl %esi, %esi
movzwl %ax, %edx
cmpw $0x4, %ax
ja 0xfdb0
testw %ax, %ax
je 0xfda7
xorl %eax, %eax
xorl %ecx, %ecx
movl (%r13,%rax,4), %esi
testb $0x1, %sil
jne 0xfd97
orl $0x1, %esi
movl %esi, (%r13,%rax,4)
jmp 0xfd9a
btsl %eax, %ecx
incq %rax
cmpq %rax, %rdx
jne 0xfd82
movzwl %cx, %ecx
jmp 0xfda9
xorl %ecx, %ecx
movl $0x10000, %esi          # imm = 0x10000
shll %cl, %esi
orl %edx, %esi
movl %esi, 0xc(%r14)
addq $0xc, %r14
leaq -0x40(%rbp), %rdx
movl $0xffffffff, 0x4(%rdx)  # imm = 0xFFFFFFFF
movq -0x30(%rbp), %rdi
movq %r14, %rsi
callq 0x10062
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x0, 0x10(%r14)
xorl %eax, %eax
xorl %r12d, %r12d
jmp 0xfd38
leaq 0x3147e(%rip), %rdi     # 0x41277
leaq 0x2f9a3(%rip), %rsi     # 0x3f7a3
leaq 0x2f9b4(%rip), %rcx     # 0x3f7bb
movl $0x33, %edx
callq 0xb180
leaq 0x2f9f9(%rip), %rdi     # 0x3f811
leaq 0x2f984(%rip), %rsi     # 0x3f7a3
leaq 0x2f995(%rip), %rcx     # 0x3f7bb
movl $0x38, %edx
callq 0xb180