// File: /workspace/github_c_makefile_star2_O0/cinemast[P]sudoku/sudoku.c
// Function: gen_statistics
static
int
gen_statistics (void)
{
    int retval = 0;
    if (0 == precanned) {
        fprintf(stderr, "Error: no precanned boards loaded\n");
        retval = -1;
    } else {
        const char * classification;

        fseek (precanned, 0, SEEK_SET);
        while (0 == read_board(precanned, 0)) {
            /* Ignore insoluble boards */
            if (-1 == solve()) {
                printf("Board '%s' has no solution\n", title);
                continue;
            }

            /* If statistics only, ignore boards with multiple solutions */
            if (0 == opt_solve && -1 != backtrack() && 0 == solve()) {
                printf("Board '%s' has multiple solutions\n", title);
                continue;
            }

            classification = classify();
            if (0 == opt_solve) {
                printf("%2d %-12s : %s\n", pass, classification, title);
            } else {
                printf("Solution(s) to '%s' [%s]\n", title, classification);
                clear_moves();
                if (-1 != solve()) {
                    do {
                        print(stdout, title);
                        if (opt_describe) {
                            printf("Solution history:\n");
                            describe(stdout);
                        }
                    } while (-1 != backtrack() && -1 != solve());
                }
            }
        }
    }
    return retval;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl $0x0, -0x4(%rbp)
xorl %eax, %eax
cmpq 0xd1b8(%rip), %rax      # 0x113c0
jne 0x422e
movq 0xcde7(%rip), %rax      # 0x10ff8
movq (%rax), %rdi
leaq 0x9213(%rip), %rsi      # 0xd42e
movb $0x0, %al
callq 0x2200
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x439f
movq 0xd18b(%rip), %rdi      # 0x113c0
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x2250
movq 0xd179(%rip), %rdi      # 0x113c0
xorl %esi, %esi
callq 0x5d90
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x439d
callq 0x6860
movl %eax, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl %ecx, %eax
jne 0x4281
leaq 0x91e0(%rip), %rdi      # 0xd451
leaq 0xe1a8(%rip), %rsi      # 0x12420
movb $0x0, %al
callq 0x2120
jmp 0x4240
xorl %eax, %eax
cmpl 0xe177(%rip), %eax      # 0x12400
jne 0x42bf
callq 0x6900
movl %eax, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl %ecx, %eax
je 0x42bf
callq 0x6860
movl %eax, %ecx
xorl %eax, %eax
cmpl %ecx, %eax
jne 0x42bf
leaq 0x91be(%rip), %rdi      # 0xd46d
leaq 0xe16a(%rip), %rsi      # 0x12420
movb $0x0, %al
callq 0x2120
jmp 0x4240
callq 0x69b0
movq %rax, -0x10(%rbp)
xorl %eax, %eax
cmpl 0xe130(%rip), %eax      # 0x12400
jne 0x42f6
movl 0xe8cc(%rip), %esi      # 0x12ba4
movq -0x10(%rbp), %rdx
leaq 0x91ad(%rip), %rdi      # 0xd490
leaq 0xe136(%rip), %rcx      # 0x12420
movb $0x0, %al
callq 0x2120
jmp 0x4398
movq -0x10(%rbp), %rdx
leaq 0x919f(%rip), %rdi      # 0xd4a0
leaq 0xe118(%rip), %rsi      # 0x12420
movb $0x0, %al
callq 0x2120
callq 0x6ab0
callq 0x6860
movl %eax, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl %ecx, %eax
je 0x4396
jmp 0x4326
movq 0xcca3(%rip), %rax      # 0x10fd0
movq (%rax), %rdi
leaq 0xe0e9(%rip), %rsi      # 0x12420
callq 0x4670
cmpl $0x0, 0xe09d(%rip)      # 0x123e0
je 0x4362
leaq 0x916e(%rip), %rdi      # 0xd4ba
movb $0x0, %al
callq 0x2120
movq 0xcc76(%rip), %rax      # 0x10fd0
movq (%rax), %rdi
callq 0x6b00
jmp 0x4364
callq 0x6900
movl %eax, %edx
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpl %edx, %ecx
movb %al, -0x11(%rbp)
je 0x438d
callq 0x6860
movl %eax, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpl %ecx, %eax
setne %al
movb %al, -0x11(%rbp)
movb -0x11(%rbp), %al
testb $0x1, %al
jne 0x4326
jmp 0x4396
jmp 0x4398
jmp 0x4240
jmp 0x439f
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)