// File: /workspace/github_cpp_makefile_star2_O1/vsklad[P]cgen/./bal/cnf/cnf/cnfclausescontainer.hpp
// Function: unsigned int const bal::CnfClausesIndexedContainer<false>::clauses_size<(unsigned short)0, false, false>() const
const clauses_size_t clauses_size() const {
            clauses_size_t result = 0;
            for (auto it: clauses()) {
                const uint32_t* const p_clause = _clauses_offset_item_clause(it);
                const clause_size_t current_clause_size = _clause_size(p_clause);
                if (clause_size == 0 || clause_size == current_clause_size) {
                    if(!aggregated && _clause_size_is_aggregated(current_clause_size)) {
                        result += get_cardinality_uint16(_clause_flags(p_clause)) * (literals ? current_clause_size : 1);
                    } else {
                        result += literals ? current_clause_size : 1;
                    };
                };
            };
            return result;
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
movl $0x1, %edx
callq 0x14afa
movl 0x38(%rbx), %r15d
cmpl %r15d, 0x18(%r14)
jne 0x12b2a
xorl %ebx, %ebx
cmpl $-0x1, -0x2c(%rbp)
je 0x12ca6
xorl %ebx, %ebx
leaq 0x3417d(%rip), %r12     # 0x46cb0
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
movq %r14, %rdi
callq 0x14148
movl 0xc(%rax), %ecx
movl %ecx, %edx
andl $0x7fff, %edx           # imm = 0x7FFF
movl $0x1, %eax
cmpl $0x4, %edx
ja 0x12b88
movl %ecx, %eax
shrl $0xf, %eax
andl $0x1e, %eax
movl %ecx, %edx
shrl $0x13, %edx
andl $0x1e, %edx
movzwl (%rdx,%r12), %edx
addw (%rax,%r12), %dx
movl %ecx, %eax
shrl $0x17, %eax
andl $0x1e, %eax
addw (%rax,%r12), %dx
shrl $0x1c, %ecx
addw (%r12,%rcx,2), %dx
movzwl %dx, %eax
movq -0x48(%rbp), %rdx
movl 0x38(%rdx), %ecx
testq %rcx, %rcx
je 0x12c90
movl -0x34(%rbp), %edi
cmpq %r13, %rdi
je 0x12bf1
movq -0x40(%rbp), %rsi
movq 0x8(%rsi), %rsi
movl 0x4(%rsi,%rdi,4), %r8d
cmpl $-0x1, %r8d
je 0x12bc7
movl %r8d, -0x34(%rbp)
movl %r8d, %edi
movl 0x8(%rsi,%rdi,4), %r8d
cmpl $-0x1, %r8d
jne 0x12bb3
jmp 0x12bf1
movl (%rsi,%rdi,4), %r8d
cmpl $-0x1, %r8d
je 0x12bed
movl %edi, %r9d
movl %r8d, %edi
movl %r8d, %r8d
cmpl %r9d, 0x4(%rsi,%r8,4)
jne 0x12bea
movl %edi, -0x34(%rbp)
movl (%rsi,%r8,4), %r8d
jmp 0x12bcb
movl %edi, %r8d
movl %r8d, -0x34(%rbp)
movl -0x34(%rbp), %esi
movl %esi, -0x2c(%rbp)
cmpl $-0x1, %esi
jne 0x12c90
movl -0x30(%rbp), %edi
incl %edi
movl %edi, -0x30(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
cmpl %ecx, %edi
jae 0x12c8d
movq 0x30(%rdx), %r9
movl %edi, %r8d
movb $0x1, %r10b
cmpl $-0x1, (%r9,%r8,4)
je 0x12c27
movq %r8, %rdx
jmp 0x12c4f
leaq -0x1(%rcx), %rdi
leal 0x1(%r8), %edx
movl %edx, -0x30(%rbp)
cmpq %r8, %rdi
je 0x12c8d
leaq 0x1(%r8), %rdx
cmpl $-0x1, 0x4(%r9,%r8,4)
movq %rdx, %r8
je 0x12c2b
cmpq %rcx, %rdx
setb %r10b
movl %edx, %edi
testb %r10b, %r10b
je 0x12c8d
movl %edi, -0x38(%rbp)
movq -0x40(%rbp), %rcx
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
cmpl %edi, 0x38(%rcx)
jbe 0x12c6c
movq 0x30(%rcx), %rsi
movl (%rsi,%rdx,4), %esi
movl %esi, -0x34(%rbp)
cmpl $-0x1, %esi
je 0x12c8a
movq 0x8(%rcx), %rcx
movl %esi, %edx
movl 0x8(%rcx,%rdx,4), %edx
cmpl $-0x1, %edx
je 0x12c8a
movl %edx, -0x34(%rbp)
movl %edx, %edx
jmp 0x12c7a
movl -0x34(%rbp), %esi
movl %esi, -0x2c(%rbp)
addl %eax, %ebx
cmpl %r15d, -0x30(%rbp)
jne 0x12b39
cmpl $-0x1, -0x2c(%rbp)
jne 0x12b39
movl %ebx, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop