// File: vsklad[P]cgen/commands.cpp
// Function: print_statistics(bal::Cnf const&)
void print_statistics(const bal::Cnf& cnf) {
    if (cnf.clauses_size() == 0) {
        std::cout << MSG_FORMULA_IS_SATISFIABLE;
        if (cnf.variables_size() > 0) {
            std::cout << " with " << std::dec << cnf.variables_size() << " free variables";
        } else {
            std::cout << " with 1 solution";
        };
        std::cout << std::endl;
    } else {
        std::cout << "CNF: " << std::dec;
        std::cout << cnf.variables_size() << " var";
        std::cout << ", " << cnf.clauses_size() << "/" << cnf.clauses_size<0, true>() << "/" << cnf.clauses_size<2>() << " cls/agr/bin";
        std::cout << ", " << cnf.clauses_size<0, false, true>() << " lit";
        std::cout << ", " << (cnf.memory_size() >> 10) << " Kb" << std::endl;
    };
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
callq 0x164d0
cmpl $0x0, %eax
jne 0x2971b
movq 0x59917(%rip), %rdi     # 0x82fa0
leaq 0x38cc2(%rip), %rsi     # 0x62352
callq 0xd320
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
cmpl $0x0, %eax
jbe 0x296f0
movq 0x598f5(%rip), %rdi     # 0x82fa0
leaq 0x38cbb(%rip), %rsi     # 0x6236d
callq 0xd320
movq %rax, %rdi
leaq -0x19401(%rip), %rsi    # 0x102c0
callq 0xd0f0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
movq -0x10(%rbp), %rdi
movl %eax, %esi
callq 0xd420
movq %rax, %rdi
leaq 0x38c8b(%rip), %rsi     # 0x62374
callq 0xd320
jmp 0x29703
movq 0x598a9(%rip), %rdi     # 0x82fa0
leaq 0x38c86(%rip), %rsi     # 0x62384
callq 0xd320
movq 0x59896(%rip), %rdi     # 0x82fa0
movq 0x5986f(%rip), %rsi     # 0x82f80
callq 0xd360
jmp 0x2988d
movq 0x5987e(%rip), %rdi     # 0x82fa0
leaq 0x38c6c(%rip), %rsi     # 0x62395
callq 0xd320
movq %rax, %rdi
leaq -0x19478(%rip), %rsi    # 0x102c0
callq 0xd0f0
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
callq *0x58(%rax)
movl %eax, %esi
movq 0x59850(%rip), %rdi     # 0x82fa0
callq 0xd420
movq %rax, %rdi
leaq 0x38c3c(%rip), %rsi     # 0x6239b
callq 0xd320
movq 0x59835(%rip), %rdi     # 0x82fa0
leaq 0x38c50(%rip), %rsi     # 0x623c2
callq 0xd320
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
callq 0x164d0
movq -0x38(%rbp), %rdi
movl %eax, %esi
callq 0xd420
movq %rax, %rdi
leaq 0x325c1(%rip), %rsi     # 0x5bd5e
callq 0xd320
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
callq 0x1a960
movq -0x30(%rbp), %rdi
movl %eax, %esi
callq 0xd420
movq %rax, %rdi
leaq 0x32596(%rip), %rsi     # 0x5bd5e
callq 0xd320
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
callq 0x2d4a0
movq -0x28(%rbp), %rdi
movl %eax, %esi
callq 0xd420
movq %rax, %rdi
leaq 0x38bad(%rip), %rsi     # 0x623a0
callq 0xd320
movq 0x597a1(%rip), %rdi     # 0x82fa0
leaq 0x38bbc(%rip), %rsi     # 0x623c2
callq 0xd320
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
callq 0x2d580
movq -0x20(%rbp), %rdi
movl %eax, %esi
callq 0xd420
movq %rax, %rdi
leaq 0x38b7c(%rip), %rsi     # 0x623ad
callq 0xd320
movq 0x59763(%rip), %rdi     # 0x82fa0
leaq 0x38b7e(%rip), %rsi     # 0x623c2
callq 0xd320
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, %rdi
addq $0x78, %rdi
movq 0x78(%rax), %rax
callq *0x10(%rax)
movq -0x18(%rbp), %rdi
movq %rax, %rsi
shrq $0xa, %rsi
callq 0xd0a0
movq %rax, %rdi
leaq 0x3513b(%rip), %rsi     # 0x5e9b4
callq 0xd320
movq %rax, %rdi
movq 0x596f8(%rip), %rsi     # 0x82f80
callq 0xd360
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)