// File: /workspace/github_cpp_makefile_star2_O3/vsklad[P]cgen/./bal/cnf/cnf/cnfclausescontainer.hpp
// Function: bal::CnfClausesIndexedContainer<false>::rollback(unsigned int, unsigned int, unsigned int)
void rollback(const container_size_t size,
                      const container_size_t instances_size,
                      const container_size_t container_size) override {
            base_t::rollback(0, 0, container_size);
            this->instances_.append(CONTAINER_END, instances_size);
            container_offset_t container_offset = 0;
            while (container_offset < container_size) {
                uint32_t* const p_clause = _clauses_offset_clause(this->p_container_->data_, container_offset);
                _clause_include(p_clause);
                insertion_point_t insertion_point;
                this->find(p_clause, insertion_point);
                _assert_level_1(insertion_point.container_offset == CONTAINER_END);
                base_t::_update(container_offset, insertion_point);
                _clauses_offset_next(container_offset, p_clause);
                this->size_ = container_offset; // "commits" the clause
            };
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %ecx, %ebx
movl %edx, %r13d
movq %rdi, %r14
xorl %r15d, %r15d
xorl %esi, %esi
xorl %edx, %edx
callq 0x2770a
leaq 0x30(%r14), %rdi
movq %rdi, -0x48(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl %r13d, %edx
callq 0x10ce8
movl %ebx, -0x2c(%rbp)
testl %ebx, %ebx
je 0x274e7
movl $0x7fff, %edx           # imm = 0x7FFF
leaq 0x34f83(%rip), %r12     # 0x5c2f4
movq 0x28(%r14), %rax
movq (%rax), %rax
movl %r15d, %ecx
leaq (%rax,%rcx,4), %rbx
andl $0xffff7fff, 0xc(%rbx)  # imm = 0xFFFF7FFF
movl 0x5c(%r14), %eax
movl %eax, -0x38(%rbp)
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movl 0xc(%rbx), %eax
andl %edx, %eax
decl %eax
movl 0x10(%rbx,%rax,4), %eax
shrl %eax
decl %eax
xorl %edx, %edx
cmpl 0x38(%r14), %eax
jae 0x2746e
movq -0x48(%rbp), %rcx
movq (%rcx), %rcx
movl %eax, %esi
movl (%rcx,%rsi,4), %ecx
cmpl $-0x1, %ecx
je 0x2746e
movq 0x8(%r14), %rdx
movl (%r12), %esi
movl %ecx, %eax
movl %ecx, %r10d
leaq (%rdx,%r10,4), %rdi
incl %esi
movl %esi, (%r12)
movzwl 0xc(%rdi), %r8d
andl $0x7fff, %r8d           # imm = 0x7FFF
movzwl 0xc(%rbx), %r9d
movw $0x7fff, %r11w          # imm = 0x7FFF
andw %r11w, %r9w
je 0x27436
testw %r8w, %r8w
je 0x27436
leaq (%rdx,%r10,4), %r10
addq $0xc, %r10
movzwl %r9w, %r11d
movzwl %r8w, %r13d
movl (%r10,%r13,4), %r13d
cmpl %r13d, 0xc(%rbx,%r11,4)
jne 0x27446
leal -0x1(%r9), %r11d
leal -0x1(%r8), %r13d
cmpw $0x1, %r8w
je 0x2743c
movl %r13d, %r8d
cmpw $0x1, %r9w
movl %r11d, %r9d
jne 0x27405
jmp 0x2743c
movl %r9d, %r11d
movl %r8d, %r13d
cmpw %r13w, %r11w
jb 0x27448
jne 0x27456
jmp 0x274ad
jae 0x27456
movl 0x8(%rdi), %ecx
cmpl $-0x1, %ecx
jne 0x273cc
jmp 0x27469
movl 0x4(%rdi), %ecx
cmpl $-0x1, %ecx
jne 0x273cc
movl $0x2, %edx
jmp 0x2746e
movl $0x1, %edx
movl %edx, -0x34(%rbp)
movl %eax, -0x30(%rbp)
leaq 0x34e75(%rip), %rax     # 0x5c2f0
incl (%rax)
movq %r14, %rdi
movl %r15d, %esi
leaq -0x3c(%rbp), %rdx
callq 0x10908
movl 0xc(%rbx), %eax
movl $0x7fff, %edx           # imm = 0x7FFF
andl %edx, %eax
addl %eax, %r15d
addl $0x4, %r15d
movl %r15d, 0x10(%r14)
cmpl -0x2c(%rbp), %r15d
jb 0x27371
jmp 0x274e7
movl $0x3, -0x34(%rbp)
movl %eax, -0x30(%rbp)
movl %eax, -0x3c(%rbp)
cmpl $-0x1, %ecx
je 0x27474
leaq 0x34e26(%rip), %rax     # 0x5c2ec
incl (%rax)
leaq 0x1a42b(%rip), %rdi     # 0x418fa
leaq 0x19dc7(%rip), %rsi     # 0x4129d
leaq 0x1fdaf(%rip), %rcx     # 0x4728c
movl $0x69, %edx
callq 0xb180
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq