// File: vsklad[P]cgen/./bal/anf/anf.cpp
// Function: bal::Anf::last_equation_remove_term_(unsigned long)
void Anf::last_equation_remove_term_(const size_t term_index) {
        is_incomplete_last_equation_();
        assert(equations_[equations_.size() - 1] <= term_index && term_index < terms_.size());
        const size_t term_symbols_size = symbols_size_(term_index);
        // remove symbols
        symbols_.erase(symbols_.begin() + terms_[term_index],
                       symbols_.begin() + terms_[term_index] + term_symbols_size);
        // remove the term
        terms_.erase(terms_.begin() + term_index);
        // reindex remaining terms if any
        for (auto i = term_index; i < terms_.size(); i++) {
            terms_[i] -= term_symbols_size;
        };
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x98(%rbp)
callq 0xfab0
movq -0x98(%rbp), %rdi
movq %rdi, %rax
addq $0xa8, %rax
movq %rax, -0x90(%rbp)
addq $0xa8, %rdi
callq 0xf9f0
movq -0x90(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0xfd50
movl (%rax), %eax
movl %eax, %ecx
xorl %eax, %eax
cmpq -0x10(%rbp), %rcx
movb %al, -0x81(%rbp)
ja 0xfeaf
movq -0x98(%rbp), %rdi
movq -0x10(%rbp), %rax
movq %rax, -0xa0(%rbp)
addq $0x90, %rdi
callq 0xf9f0
movq %rax, %rcx
movq -0xa0(%rbp), %rax
cmpq %rcx, %rax
setb %al
movb %al, -0x81(%rbp)
movb -0x81(%rbp), %al
testb $0x1, %al
jne 0xfebb
jmp 0xfebd
jmp 0xfedc
leaq 0x4b7b3(%rip), %rdi     # 0x5b677
leaq 0x4b154(%rip), %rsi     # 0x5b01f
movl $0x26, %edx
leaq 0x4b7ee(%rip), %rcx     # 0x5b6c5
callq 0xd1c0
movq -0x98(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xfd70
movq -0x98(%rbp), %rdi
movq %rax, -0x18(%rbp)
movq %rdi, %rax
addq $0x78, %rax
movq %rax, -0xb0(%rbp)
addq $0x78, %rdi
callq 0x10a10
movq -0x98(%rbp), %rdi
movq %rax, -0x30(%rbp)
addq $0x90, %rdi
movq -0x10(%rbp), %rsi
callq 0xfd50
movl (%rax), %eax
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x10a40
movq %rax, -0x28(%rbp)
leaq -0x20(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x10a80
movq -0x98(%rbp), %rdi
addq $0x78, %rdi
callq 0x10a10
movq -0x98(%rbp), %rdi
movq %rax, -0x50(%rbp)
addq $0x90, %rdi
movq -0x10(%rbp), %rsi
callq 0xfd50
movl (%rax), %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
callq 0x10a40
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x10a40
movq %rax, -0x40(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x10a80
movq -0xb0(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x38(%rbp), %rdx
callq 0x10980
movq -0x98(%rbp), %rdi
movq %rax, -0x58(%rbp)
movq %rdi, %rax
addq $0x90, %rax
movq %rax, -0xa8(%rbp)
addq $0x90, %rdi
callq 0x10a10
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x10a40
movq %rax, -0x68(%rbp)
leaq -0x60(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x10a80
movq -0xa8(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x10ac0
movq %rax, -0x78(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x98(%rbp), %rdi
movq -0x80(%rbp), %rax
movq %rax, -0xb8(%rbp)
addq $0x90, %rdi
callq 0xf9f0
movq %rax, %rcx
movq -0xb8(%rbp), %rax
cmpq %rcx, %rax
jae 0x10085
movq -0x98(%rbp), %rdi
movq -0x18(%rbp), %rax
movq %rax, -0xc0(%rbp)
addq $0x90, %rdi
movq -0x80(%rbp), %rsi
callq 0xfd50
movq -0xc0(%rbp), %rdx
movl (%rax), %ecx
subq %rdx, %rcx
movl %ecx, (%rax)
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
jmp 0x1001a
addq $0xc0, %rsp
popq %rbp
retq
nop