// File: /workspace/github_cpp_makefile_star2_O3/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 0x136d8
movl 0x38(%rbx), %r15d
cmpl %r15d, 0x18(%r14)
jne 0x11746
xorl %ebx, %ebx
cmpl $-0x1, -0x2c(%rbp)
je 0x118b8
xorl %ebx, %ebx
leaq 0x33571(%rip), %r12     # 0x44cc0
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
movq %r14, %rdi
callq 0x12cfa
movl 0xc(%rax), %ecx
movl %ecx, %edx
andl $0x7fff, %edx           # imm = 0x7FFF
movl $0x1, %eax
cmpl $0x4, %edx
ja 0x117a4
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), %rsi
movl 0x38(%rsi), %edx
testl %edx, %edx
je 0x117e4
movl -0x34(%rbp), %ecx
cmpq %r13, %rcx
je 0x1181a
movq -0x40(%rbp), %rdi
movq 0x8(%rdi), %rdi
movl 0x4(%rdi,%rcx,4), %r8d
cmpl $-0x1, %r8d
je 0x117ec
movl %r8d, %ecx
movl %r8d, -0x34(%rbp)
movl %r8d, %edx
movl 0x8(%rdi,%rdx,4), %r8d
cmpl $-0x1, %r8d
jne 0x117ca
jmp 0x118a0
movl -0x2c(%rbp), %ecx
jmp 0x118a3
movl (%rdi,%rcx,4), %r8d
cmpl $-0x1, %r8d
je 0x11813
movl %ecx, %r9d
movl %r8d, %ecx
movl %r8d, %r8d
cmpl %r9d, 0x4(%rdi,%r8,4)
movl %ecx, -0x34(%rbp)
jne 0x118a0
movl (%rdi,%r8,4), %r8d
jmp 0x117f0
movl $0xffffffff, -0x34(%rbp) # imm = 0xFFFFFFFF
movl $0xffffffff, -0x2c(%rbp) # imm = 0xFFFFFFFF
movl -0x30(%rbp), %edi
leal 0x1(%rdi), %r9d
movl %r9d, -0x30(%rbp)
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpl %edx, %r9d
jae 0x118a0
movq 0x30(%rsi), %r8
movl %r9d, %esi
negl %edx
addl $0x2, %edi
cmpl $-0x1, (%r8,%rsi,4)
jne 0x11860
incq %rsi
movl %edi, -0x30(%rbp)
leal (%rdx,%rdi), %r9d
incl %r9d
incl %edi
cmpl $0x1, %r9d
jne 0x11842
jmp 0x118a0
movl %esi, -0x38(%rbp)
movq -0x40(%rbp), %rdx
cmpl %esi, 0x38(%rdx)
jbe 0x11899
movq 0x30(%rdx), %rdi
movl %esi, %esi
movl (%rdi,%rsi,4), %edi
movl %edi, -0x34(%rbp)
cmpq %r13, %rdi
je 0x118a0
movq 0x8(%rdx), %rdx
movl 0x8(%rdx,%rdi,4), %esi
movl %edi, %ecx
cmpl $-0x1, %esi
je 0x118a0
movl %esi, %ecx
movl %esi, -0x34(%rbp)
movl %esi, %esi
movl 0x8(%rdx,%rsi,4), %esi
jmp 0x11887
movl $0xffffffff, -0x34(%rbp) # imm = 0xFFFFFFFF
movl %ecx, -0x2c(%rbp)
addl %eax, %ebx
cmpl %r15d, -0x30(%rbp)
jne 0x11755
cmpl $-0x1, %ecx
jne 0x11755
movl %ebx, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop