// File: /workspace/github_c_makefile_star2_O1/cinemast[P]sudoku/sudoku.c
// Function: block
static
void
block (int el)
{
    int i, idx, row, col;

    /* Find first unknown square */
    for (i = 0; i < 9 && !IS_EMPTY(idx = idx_block(el, i)); ++i) {
       ;
    }
    if (i < 9) {
        assert(IS_EMPTY(idx));
        row = ROW(idx);
        col = COLUMN(idx);
        for (++i; i < 9; ++i) {
            idx = idx_block(el, i);
            if (IS_EMPTY(idx)) {
                if (ROW(idx) != row) {
                    row = -1;
                }
                if (COLUMN(idx) != col) {
                    col = -1;
                }
            }
        }
        if (0 <= row) {
            exblock(el, row, idx_row);
        }
        if (0 <= col) {
            exblock(el, col, idx_column);
        }
    }
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edi, %ebx
movslq %edi, %rsi
imulq $0x55555556, %rsi, %rdx # imm = 0x55555556
movq %rdx, %rdi
shrq $0x3f, %rdi
shrq $0x20, %rdx
leal (%rdx,%rdi), %eax
leal (%rax,%rax,2), %eax
leal (%rsi,%rsi,8), %ecx
subl %eax, %esi
addl %esi, %esi
leal (%rsi,%rsi,2), %eax
subl %eax, %ecx
xorl %ebp, %ebp
movb $0x1, %r10b
movl $0xaaaaaaab, %r11d      # imm = 0xAAAAAAAB
leaq 0xc593(%rip), %rax      # 0xf4a0
movl %ebp, %r8d
movl %ebp, %r9d
movq %r9, %r14
imulq %r11, %r14
shrq $0x21, %r14
leal (%r14,%r14,2), %r14d
leal (%rcx,%r14,2), %ebp
addl %r8d, %ebp
movslq %ebp, %r14
testb $0xf, 0x2(%rax,%r14,4)
je 0x2f4c
leal 0x1(%r8), %ebp
cmpl $0x8, %r8d
setb %r10b
cmpl $0x9, %ebp
jne 0x2f0d
movl $0x9, %ecx
jmp 0x2f4f
movl %r8d, %ecx
testb $0x1, %r10b
je 0x305c
leal (%rbx,%rbx,8), %r10d
leal (%rsi,%rsi,2), %esi
subl %esi, %r10d
movl $0xaaaaaaab, %esi       # imm = 0xAAAAAAAB
imulq %r9, %rsi
shrq $0x21, %rsi
leal (%rsi,%rsi,2), %esi
leal (%r10,%rsi,2), %esi
addl %r8d, %esi
movslq %esi, %r14
testb $0xf, 0x2(%rax,%r14,4)
jne 0x3061
imulq $0x38e38e39, %r14, %rsi # imm = 0x38E38E39
movq %rsi, %r8
shrq $0x3f, %r8
sarq $0x21, %rsi
addl %r8d, %esi
leal (%rsi,%rsi,8), %r8d
subl %r8d, %r14d
cmpl $0x7, %ecx
ja 0x3030
addl %edi, %edx
leal (%rdx,%rdx,2), %edx
movl %ebx, %r8d
subl %edx, %r8d
movl $0x8, %edx
subl %ecx, %edx
leal (%rbx,%rbx,8), %edi
addl %ecx, %edi
addl %r8d, %r8d
leal (%r8,%r8,2), %r8d
subl %r8d, %edi
incl %edi
incl %ecx
movl $0xaaaaaaab, %r8d       # imm = 0xAAAAAAAB
movl %ecx, %r9d
imulq %r8, %r9
shrq $0x21, %r9
leal (%r9,%r9,2), %r9d
leal (%rdi,%r9,2), %r9d
movslq %r9d, %r10
testb $0xf, 0x2(%rax,%r10,4)
jne 0x3028
imulq $0x38e38e39, %r10, %r10 # imm = 0x38E38E39
movq %r10, %r11
shrq $0x3f, %r11
sarq $0x21, %r10
addl %r11d, %r10d
cmpl %esi, %r10d
je 0x3016
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leal (%r10,%r10,8), %r10d
subl %r10d, %r9d
cmpl %r14d, %r9d
je 0x3028
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
incl %edi
incl %ecx
decl %edx
jne 0x2fd9
testl %esi, %esi
js 0x3042
leaq -0x1be(%rip), %rdx      # 0x2e7d
movl %ebx, %edi
callq 0x5eff
testl %r14d, %r14d
js 0x305c
leaq -0x1cb(%rip), %rdx      # 0x2e83
movl %ebx, %edi
movl %r14d, %esi
popq %rbx
popq %r14
popq %rbp
jmp 0x5eff
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x7c4d(%rip), %rdi      # 0xacb5
leaq 0x794b(%rip), %rsi      # 0xa9ba
leaq 0x7c4d(%rip), %rcx      # 0xacc3
movl $0x496, %edx            # imm = 0x496
callq 0x2160