Function at 0x40522f
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
call sub.cygwin1.dll___getreent
mov edx, dword [0x4090c0]
mov dword [esp + 8], edx
mov dword [esp + 4], str.Usage:__s__options____filename___nSupported_options:_n_____c_class_____generate_a_board_until_it_finds_a_board_of_the_specified_n_________________class._Supported_classes_are:_n____________________very_easy__easy__medium__hard__and_fiendish_n_____d___________describe_solution_steps__with__v__n_____f_format____set_output_format__supported_formats_are:_n____________________standard____std______default_format__n____________________compact_n____________________csv__________________comma_separated_file__n____________________postscript__ps__n____________________html_n_____g__num______generate__num__board_s___and_print_on_stdout_n_____n___________no_random_boards__requires_precanned_boards__filename___n_____r___________restricted:_dont_allow_boards_to_be_saved_n_____s___________calculate_statistics_for_precanned_boards_n_____t_filename__template_file_n_____v___________solve_precanned_boards_n_____filename____precanned_sudoku_boards_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp], 1
call sub.cygwin1.dll_exit
push ebp
mov ebp, esp
push ebx
sub esp, 0x44
and esp, 0xfffffff0
mov eax, 0
add eax, 0xf
add eax, 0xf
shr eax, 4
shl eax, 4
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
call fcn.00406420
call sub.cygwin1.dll___main
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [0x4090c0], eax
cmp dword [ebp + 8], 1
jle 0x4056f6
dec dword [ebp + 8]
cmp dword [ebp + 8], 0
jle 0x4056f6
lea eax, [ebp + 0xc]
add dword [eax], 4
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp byte [eax], 0x2d
je 0x405321
cmp dword [0x409af0], 0
je 0x4052c2
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str.Error:_only_1_precanned_file_allowed_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp], 1
call sub.cygwin1.dll_exit
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call fcn.004049a3
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov dword [esp], 0x409b20
call sub.cygwin1.dll_strcpy
cmp dword [0x409af0], 0
je 0x4052f6
cmp dword [0x409b00], 0
jne 0x40526e
call sub.cygwin1.dll___getreent
mov edx, dword [ebp - 0x14]
mov dword [esp + 8], edx
mov dword [esp + 4], str.Error:_failed_to_open__s_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp], 1
call sub.cygwin1.dll_exit
lea eax, [ebp - 0x14]
inc dword [eax]
mov eax, dword [ebp - 0x14]
cmp byte [eax], 0
je 0x40526e
mov eax, dword [ebp - 0x14]
movsx eax, byte [eax]
sub eax, 0x63
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0x13
ja case.0x405352.2
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx*4 + 0x408e08]
jmp eax
mov eax, dword [ebp - 0x14]
inc eax
mov dword [esp], eax
call sub.cygwin1.dll_strdup
mov dword [0x409010], eax
mov dword [esp + 4], str.very_easy
mov eax, dword [0x409010]
mov dword [esp], eax
call sub.cygwin1.dll_strcmp
test eax, eax
je 0x40540a
mov dword [esp + 4], str.easy
mov eax, dword [0x409010]
mov dword [esp], eax
call sub.cygwin1.dll_strcmp
test eax, eax
je 0x40540a
mov dword [esp + 4], str.medium
mov eax, dword [0x409010]
mov dword [esp], eax
call sub.cygwin1.dll_strcmp
test eax, eax
je 0x40540a
mov dword [esp + 4], str.hard
mov eax, dword [0x409010]
mov dword [esp], eax
call sub.cygwin1.dll_strcmp
test eax, eax
je 0x40540a
mov dword [esp + 4], str.fiendish
mov eax, dword [0x409010]
mov dword [esp], eax
call sub.cygwin1.dll_strcmp
test eax, eax
je 0x40540a
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str.Error:_the_class_must_be_one_of_very_easy__easy__medium__hard_and_fiendish_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp], 1
call sub.cygwin1.dll_exit
mov dword [ebp - 0x14], 0x408b6e
jmp 0x405321
mov dword [0x409030], 1
jmp 0x405321
mov eax, dword [ebp - 0x14]
inc eax
cmp byte [eax], 0
jne 0x405441
lea eax, [ebp + 0xc]
add dword [eax], 4
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
dec dword [ebp + 8]
jmp 0x405446
lea eax, [ebp - 0x14]
inc dword [eax]
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov dword [esp], str.compact
call sub.cygwin1.dll_strcmp
test eax, eax
jne 0x40546c
mov dword [0x409020], 1
jmp 0x405557
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov dword [esp], str.standard
call sub.cygwin1.dll_strcmp
test eax, eax
je 0x40549a
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov dword [esp], 0x408b81
call sub.cygwin1.dll_strcmp
test eax, eax
jne 0x4054a9
mov dword [0x409020], 0
jmp 0x405557
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov dword [esp], 0x408b85
call sub.cygwin1.dll_strcmp
test eax, eax
jne 0x4054cf
mov dword [0x409020], 2
jmp 0x405557
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov dword [esp], str.postscript
call sub.cygwin1.dll_strcmp
test eax, eax
je 0x4054fd
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov dword [esp], 0x408b94
call sub.cygwin1.dll_strcmp
test eax, eax
jne 0x405509
mov dword [0x409020], 3
jmp 0x405557
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov dword [esp], str.html
call sub.cygwin1.dll_strcmp
test eax, eax
jne 0x40552c
mov dword [0x409020], 4
jmp 0x405557
call sub.cygwin1.dll___getreent
mov edx, dword [ebp - 0x14]
mov dword [esp + 8], edx
mov dword [esp + 4], str.Error:__s_is_an_unknown_format_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp], 1
call sub.cygwin1.dll_exit
mov dword [ebp - 0x14], 0x408b6e
jmp 0x405321
mov dword [0x409040], 1
mov eax, dword [ebp - 0x14]
inc eax
movsx eax, byte [eax]
add eax, dword [sym.imp.cygwin1.dll__ctype_]
inc eax
movsx eax, byte [eax]
and eax, 4
test eax, eax
je 0x4055a2
mov eax, dword [ebp - 0x14]
inc eax
mov dword [esp], eax
call sub.cygwin1.dll_atoi
mov dword [section..data], eax
mov dword [ebp - 0x14], 0x408b6e
jmp 0x405321
mov eax, dword [ebp - 0x14]
inc eax
cmp byte [eax], 0
jne 0x405321
mov eax, dword [ebp + 0xc]
add eax, 4
cmp dword [eax], 0
je 0x405321
mov eax, dword [ebp + 0xc]
add eax, 4
mov eax, dword [eax]
movsx eax, byte [eax]
add eax, dword [sym.imp.cygwin1.dll__ctype_]
inc eax
movsx eax, byte [eax]
and eax, 4
test eax, eax
je 0x405321
lea eax, [ebp + 0xc]
add dword [eax], 4
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [esp], eax
call sub.cygwin1.dll_atoi
mov dword [section..data], eax
dec dword [ebp + 8]
jmp 0x405321
mov dword [0x409060], 1
jmp 0x405321
mov dword [0x407004], 0
jmp 0x405321
mov dword [0x409080], 1
jmp 0x405321
mov dword [0x409050], 1
jmp 0x405321
mov eax, dword [ebp - 0x14]
inc eax
cmp byte [eax], 0
jne 0x40568d
mov eax, dword [ebp + 0xc]
add eax, 4
cmp dword [eax], 0
jne 0x405672
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str.Error:_expected_argument_after__t_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp], 1
call sub.cygwin1.dll_exit
lea eax, [ebp + 0xc]
add dword [eax], 4
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov dword [esp], eax
call fcn.004049f7
dec dword [ebp + 8]
jmp 0x40569d
lea eax, [ebp - 0x14]
inc dword [eax]
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
call fcn.004049f7
cmp dword [0x4097b0], 0
jne 0x4056d1
call sub.cygwin1.dll___getreent
mov edx, dword [ebp - 0x14]
mov dword [esp + 8], edx
mov dword [esp + 4], str.Error:_failed_to_open_template_file__s_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp], 1
call sub.cygwin1.dll_exit
mov dword [ebp - 0x14], 0x408b6e
jmp 0x405321
mov dword [0x409070], 1
jmp 0x405321
call fcn.004051fb
jmp 0x405321
cmp dword [0x409050], 0
je 0x40572c
cmp dword [0x409040], 0
je 0x40572c
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str.Error:_Cannot_set_both__g_and__s_options_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [ebp - 0x18], 0xffffffff
jmp 0x40632d
cmp dword [0x409af0], 0
jne 0x405756
mov dword [esp], str._usr_share_sudoku_precanned
call fcn.004049a3
cmp dword [0x409af0], 0
jne 0x405756
mov dword [esp], str.precanned
call fcn.004049a3
cmp dword [0x409050], 0
jne 0x40576a
cmp dword [0x409070], 0
jne 0x40576a
jmp 0x4057a4
cmp dword [0x409af0], 0
jne 0x405797
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str.Error:_no_precanned_boards_loaded_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [ebp - 0x18], 0xffffffff
jmp 0x40632d
call fcn.00404f66
mov dword [ebp - 0x18], eax
jmp 0x40632d
mov dword [esp], 0
call sub.cygwin1.dll_time
mov ebx, eax
call sub.cygwin1.dll_getpid
xor eax, ebx
mov dword [esp], eax
call sub.cygwin1.dll_srand
cmp dword [0x4097b0], 0
jne 0x405818
mov dword [esp], str._usr_share_sudoku_template
call fcn.004049f7
cmp dword [0x4097b0], 0
jne 0x405818
mov dword [esp], str.template
call fcn.004049f7
cmp dword [0x4097b0], 0
jne 0x405818
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str.Error:_failed_to_open_template_file_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp], 1
call sub.cygwin1.dll_exit
cmp dword [0x409040], 0
je 0x40586a
cmp dword [section..data], 0
jne 0x405830
dec dword [section..data]
dec dword [section..data]
cmp dword [section..data], 0xffffffff
je 0x40585e
call fcn.004046f0
call sub.cygwin1.dll___getreent
mov dword [esp + 4], 0x409a10
mov eax, dword [eax + 8]
mov dword [esp], eax
call fcn.00401628
jmp 0x405830
mov dword [ebp - 0x18], 0
jmp 0x40632d
cmp dword [0x407004], 0
jne 0x4058a0
cmp dword [0x409af0], 0
jne 0x4058a0
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str.Error:_option__n_requires_precanned_boards_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [ebp - 0x18], 1
jmp 0x40632d
mov dword [esp], 0
call sub.cygwin1.dll_isatty
test eax, eax
je 0x4058c0
mov dword [esp], 1
call sub.cygwin1.dll_isatty
test eax, eax
jne 0x4058e4
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str.Error:_stdin_out_cannot_be_redirected_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [ebp - 0x18], 1
jmp 0x40632d
call sub.cygncurses_8.dll_initscr
test eax, eax
jne 0x405911
call sub.cygwin1.dll___getreent
mov dword [esp + 4], str.Error:_failed_to_initialise_curses_screen_library_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [ebp - 0x18], 1
jmp 0x40632d
call fcn.004050fa
call fcn.004031c9
call sub.cygncurses_8.dll_noecho
call sub.cygncurses_8.dll_cbreak
call fcn.00404a4b
mov dword [ebp - 8], 0x20
cmp dword [ebp - 8], 0x71
je 0x406304
mov eax, dword [sym.imp.cygncurses_8.dll_stdscr]
mov dword [esp], eax
call sub.cygncurses_8.dll_wrefresh
call fcn.00404b51
mov dword [ebp - 8], eax
cmp dword [0x409a80], 0
je 0x40595e
call fcn.00403a92
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], 0x6c
je 0x405c20
cmp dword [ebp - 0x24], 0x6c
jg 0x4059fd
cmp dword [ebp - 0x24], 0x3f
je 0x405ef5
cmp dword [ebp - 0x24], 0x3f
jg 0x4059bb
cmp dword [ebp - 0x24], 0x2e
je 0x405a96
cmp dword [ebp - 0x24], 0x2e
jg 0x4059a7
cmp dword [ebp - 0x24], 0x20
je 0x405b59
jmp 0x4061da
mov eax, dword [ebp - 0x24]
sub eax, 0x30
cmp eax, 9
ja 0x4061da
jmp 0x405a9d
cmp dword [ebp - 0x24], 0x68
je 0x405b63
cmp dword [ebp - 0x24], 0x68
jg 0x4059e4
cmp dword [ebp - 0x24], 0x63
je 0x405d91
cmp dword [ebp - 0x24], 0x66
je 0x405de2
jmp 0x4061da
cmp dword [ebp - 0x24], 0x6a
je 0x405ba2
cmp dword [ebp - 0x24], 0x6b
je 0x405be1
jmp 0x4061da
cmp dword [ebp - 0x24], 0x75
je 0x405c5f
cmp dword [ebp - 0x24], 0x75
jg 0x405a45
cmp dword [ebp - 0x24], 0x71
je 0x4061df
cmp dword [ebp - 0x24], 0x71
jg 0x405a2c
cmp dword [ebp - 0x24], 0x6e
je 0x405e24
jmp 0x4061da
cmp dword [ebp - 0x24], 0x72
je 0x405eb6
cmp dword [ebp - 0x24], 0x73
je 0x405ede
jmp 0x4061da
cmp dword [ebp - 0x24], 0x142
je 0x405ba2
cmp dword [ebp - 0x24], 0x142
jg 0x405a77
cmp dword [ebp - 0x24], 0x76
je 0x405e5f
cmp dword [ebp - 0x24], 0x141
je 0x405be1
jmp 0x4061da
cmp dword [ebp - 0x24], 0x143
je 0x405c20
cmp dword [ebp - 0x24], 0x144
je 0x405b63
jmp 0x4061da
mov dword [ebp - 8], 0x30
mov edx, dword [0x409a70]
mov eax, edx
shl eax, 3
add eax, edx
add eax, dword [0x409a60]
mov eax, dword [eax*4 + 0x4090e0]
and eax, 0x100000
test eax, eax
jne 0x405b4f
mov dword [0x409770], 0xffffffff
mov eax, dword [ebp - 8]
sub eax, 0x30
mov dword [esp + 4], eax
mov edx, dword [0x409a70]
mov eax, edx
shl eax, 3
add eax, edx
add eax, dword [0x409a60]
mov dword [esp], eax
call fcn.00401dcb
cmp dword [ebp - 8], 0x30
je 0x405b01
mov eax, dword [ebp - 8]
mov dword [ebp - 0x20], eax
jmp 0x405b08
mov dword [ebp - 0x20], 0x2e
mov edx, dword [ebp - 0x20]
mov dword [esp + 4], edx
mov eax, dword [sym.imp.cygncurses_8.dll_stdscr]
nop
stosb byte es:[edi], al
inc eax
add byte [ecx - 0x7b17dbfc], cl
or byte [eax], al
add byte [ecx + 0x409a70], ah
mov dword [esp + 4], eax
mov eax, dword [0x409a60]
mov dword [esp], eax
call fcn.0040391a
cmp dword [0x409a90], 0
je 0x405b40
call fcn.0040407c
mov dword [0x409780], 0
jmp 0x4061df
call sub.cygncurses_8.dll_beep
jmp 0x4061df
call fcn.00403996
jmp 0x4061df
cmp dword [0x409a60], 0
jle 0x405b88
mov eax, dword [0x409a70]
mov dword [esp + 4], eax
mov eax, dword [0x409a60]
dec eax
mov dword [esp], eax
call fcn.0040391a
jmp 0x4061df
mov eax, dword [0x409a70]
mov dword [esp + 4], eax
mov dword [esp], 8
call fcn.0040391a
jmp 0x4061df
cmp dword [0x409a70], 7
jg 0x405bc7
mov eax, dword [0x409a70]
inc eax
mov dword [esp + 4], eax
mov eax, dword [0x409a60]
mov dword [esp], eax
call fcn.0040391a
jmp 0x4061df
mov dword [esp + 4], 0
mov eax, dword [0x409a60]
mov dword [esp], eax
call fcn.0040391a
jmp 0x4061df
cmp dword [0x409a70], 0
jle 0x405c06
mov eax, dword [0x409a70]
dec eax
mov dword [esp + 4], eax
mov eax, dword [0x409a60]
mov dword [esp], eax
call fcn.0040391a
jmp 0x4061df
mov dword [esp + 4], 8
mov eax, dword [0x409a60]
mov dword [esp], eax
call fcn.0040391a
jmp 0x4061df
cmp dword [0x409a60], 7
jg 0x405c45
mov eax, dword [0x409a70]
mov dword [esp + 4], eax
mov eax, dword [0x409a60]
inc eax
mov dword [esp], eax
call fcn.0040391a
jmp 0x4061df
mov eax, dword [0x409a70]
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.0040391a
jmp 0x4061df
mov eax, dword [0x409230]
mov eax, dword [eax*4 + 0x40923c]
and eax, 0x100000
test eax, eax
je 0x405c7e
call sub.cygncurses_8.dll_beep
jmp 0x4061df
dec dword [0x409230]
mov eax, dword [0x409230]
dec eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
js 0x405cd6
mov eax, dword [ebp - 0xc]
mov edx, dword [eax*4 + 0x409240]
and edx, 0x7f
mov eax, dword [0x409230]
mov eax, dword [eax*4 + 0x409240]
and eax, 0x7f
cmp edx, eax
jne 0x405ccf
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0xc]
mov edx, dword [edx*4 + 0x409240]
and edx, 0xffbfffff
mov dword [eax*4 + 0x409240], edx
jmp 0x405cd6
lea eax, [ebp - 0xc]
dec dword [eax]
jmp 0x405c8d
mov dword [0x409770], 0xffffffff
cmp dword [0x409a90], 0
je 0x405cee
call fcn.0040407c
mov dword [0x409780], 0
call fcn.00401af5
call fcn.00403ae4
mov eax, dword [0x409230]
mov eax, dword [eax*4 + 0x40923c]
and eax, 0x100000
test eax, eax
je 0x405d35
mov dword [0x409a70], 8
mov dword [0x409a60], 8
call fcn.00403996
jmp 0x4061df
mov eax, dword [0x409230]
mov ecx, dword [eax*4 + 0x409240]
and ecx, 0x7f
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov dword [esp + 4], eax
mov eax, dword [0x409230]
mov ecx, dword [eax*4 + 0x409240]
and ecx, 0x7f
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
shl eax, 3
add eax, edx
sub ecx, eax
mov eax, ecx
mov dword [esp], eax
call fcn.0040391a
jmp 0x4061df
mov dword [0x409b10], 0
mov dword [0x409770], 0xffffffff
cmp dword [0x409a90], 0
je 0x405db3
call fcn.0040407c
call fcn.00401050
call fcn.00403ae4
mov dword [esp], 0
call fcn.00403892
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.0040391a
jmp 0x4061df
cmp dword [0x409230], 0
je 0x4061df
mov eax, dword [0x409240]
and eax, 0x100000
test eax, eax
jne 0x4061df
call fcn.0040420f
test eax, eax
je 0x4061df
mov dword [esp], str.There_is_an_error___no_solution_possible_
call fcn.00403a1a
call sub.cygncurses_8.dll_beep
jmp 0x4061df
cmp dword [0x409a90], 0
je 0x405e32
call fcn.0040407c
call fcn.00401050
call fcn.00403ae4
mov dword [esp], 0
call fcn.00403892
mov eax, dword [sym.imp.cygncurses_8.dll_stdscr]
nop
stosb byte es:[edi], al
inc eax
add byte [ecx + 0x5be82404], cl
add eax, 0xf1e80000
jmp 0x405e58
invalid
jmp 0x4061df
call fcn.00401c19
cmp dword [0x409a90], 0
je 0x405e72
call fcn.0040407c
mov dword [0x409770], 0xffffffff
call fcn.00402d35
test eax, eax
jne 0x405e91
mov dword [0x409b10], 1
jmp 0x405e96
call sub.cygncurses_8.dll_beep
call fcn.00403ae4
mov eax, dword [0x409a70]
mov dword [esp + 4], eax
mov eax, dword [0x409a60]
mov dword [esp], eax
call fcn.0040391a
jmp 0x4061df
call fcn.00401c19
call fcn.00403ae4
mov dword [0x409a70], 8
mov dword [0x409a60], 8
call fcn.00403996
jmp 0x4061df
cmp dword [0x409080], 0
jne 0x4061df
call fcn.00404bf0
jmp 0x4061df
inc dword [0x409780]
cmp dword [0x409a90], 0
je 0x405f09
call fcn.0040407c
cmp dword [0x409770], 0xffffffff
jne 0x405f26
mov dword [0x409790], 0xffffffff
call fcn.00402914
mov dword [0x409770], eax
cmp dword [0x409770], 0
jne 0x405f40
mov dword [esp], str.No_hints_available_
call fcn.00403a1a
jmp 0x4061df
mov dword [ebp - 0x14], 0
cmp dword [0x409770], 1
jle 0x405f6c
call sub.cygwin1.dll_rand
cdq
idiv dword [0x409770]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0xc]
cmp eax, dword [0x409790]
jne 0x405f73
jmp 0x405f50
mov dword [ebp - 0xc], 0
mov eax, dword [ebp - 0xc]
mov dword [0x409790], eax
mov eax, dword [eax*4 + 0x409620]
and eax, 0x7f
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x409620]
and eax, 0x1000000
test eax, eax
je 0x405fa0
lea eax, [ebp - 0x14]
inc dword [eax]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x409620]
and eax, 0x2000000
test eax, eax
je 0x405fb8
lea eax, [ebp - 0x14]
inc dword [eax]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x409620]
and eax, 0x4000000
test eax, eax
je 0x405fd0
lea eax, [ebp - 0x14]
inc dword [eax]
cmp dword [ebp - 0x14], 0
jg 0x405ff2
mov dword [esp + 8], str.0___n
mov dword [esp + 4], 0x99a
mov dword [esp], str.sudoku.c
call sub.cygwin1.dll___assert
cmp dword [ebp - 0x14], 1
jle 0x406013
call sub.cygwin1.dll_rand
mov edx, eax
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x28], ecx
mov eax, edx
mov ecx, dword [ebp - 0x28]
cdq
idiv dword [ecx]
lea eax, [edx + 1]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x409620]
and eax, 0x1000000
test eax, eax
je 0x40604e
lea eax, [ebp - 0x14]
dec dword [eax]
cmp dword [ebp - 0x14], 0
jne 0x40604e
mov ecx, dword [ebp - 0x10]
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov dword [esp], eax
call fcn.00403cf4
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x409620]
and eax, 0x2000000
test eax, eax
je 0x406092
lea eax, [ebp - 0x14]
dec dword [eax]
cmp dword [ebp - 0x14], 0
jne 0x406092
mov ecx, dword [ebp - 0x10]
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
shl eax, 3
add eax, edx
sub ecx, eax
mov eax, ecx
mov dword [esp], eax
call fcn.00403dc2
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x409620]
and eax, 0x4000000
test eax, eax
je 0x40610a
lea eax, [ebp - 0x14]
dec dword [eax]
cmp dword [ebp - 0x14], 0
jne 0x40610a
mov ecx, dword [ebp - 0x10]
mov eax, 0x4bda12f7
imul ecx
sar edx, 3
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov ebx, eax
add ebx, ebx
add ebx, eax
mov ecx, dword [ebp - 0x10]
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
shl eax, 3
add eax, edx
sub ecx, eax
mov dword [ebp - 0x2c], ecx
mov eax, 0x55555556
imul dword [ebp - 0x2c]
mov ecx, edx
mov eax, dword [ebp - 0x2c]
sar eax, 0x1f
sub ecx, eax
mov eax, ecx
lea eax, [ebx + eax]
mov dword [esp], eax
call fcn.00403e94
cmp dword [0x409060], 0
je 0x406188
mov ecx, dword [ebp - 0x10]
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
shl eax, 3
add eax, edx
sub ecx, eax
mov eax, ecx
inc eax
mov dword [esp + 0x10], eax
mov ecx, dword [ebp - 0x10]
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
inc eax
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x409620]
and eax, 0xf0000
sar eax, 0x10
mov dword [esp + 8], eax
mov dword [esp + 4], str._d___row__d__column__d
mov dword [esp], 0x409aa0
call sub.cygwin1.dll_sprintf
mov dword [esp], 0x409aa0
call fcn.00403a1a
jmp 0x4061df
cmp dword [0x409780], 0xa
jg 0x4061a2
mov eax, dword [0x409770]
add eax, eax
cmp eax, dword [0x409780]
jl 0x4061a2
jmp 0x4061df
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x409620]
and eax, 0xf0000
sar eax, 0x10
mov dword [esp + 8], eax
mov dword [esp + 4], str._try_the_digit__d_
mov dword [esp], 0x409aa0
call sub.cygwin1.dll_sprintf
mov dword [esp], 0x409aa0
call fcn.00403a1a
jmp 0x4061df
call sub.cygncurses_8.dll_beep
cmp dword [0x409b10], 0
jne 0x405931
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0xc], 0x50
jg 0x406216
mov eax, dword [ebp - 0xc]
mov eax, dword [eax*4 + 0x4090e0]
and eax, 0xf0000
sar eax, 0x10
test eax, eax
je 0x406216
lea eax, [ebp - 0xc]
inc dword [eax]
jmp 0x4061f3
cmp dword [ebp - 0xc], 0x51
jne 0x405931
call fcn.0040420f
test eax, eax
jne 0x405931
lea eax, [ebp - 0x14]
mov dword [esp], eax
call sub.cygwin1.dll_time
mov edx, dword [0x4090d0]
lea eax, [ebp - 0x14]
sub dword [eax], edx
mov ecx, dword [ebp - 0x14]
mov eax, 0x88888889
imul ecx
lea eax, [ecx + edx]
mov edx, eax
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
shl eax, 4
sub eax, edx
shl eax, 2
sub ecx, eax
mov eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ebp - 0x14]
mov eax, 0x88888889
imul ecx
lea eax, [edx + ecx]
mov edx, eax
sar edx, 5
mov eax, ecx
sar eax, 0x1f
mov ecx, edx
sub ecx, eax
mov eax, 0x88888889
imul ecx
lea eax, [edx + ecx]
mov edx, eax
sar edx, 5
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
shl eax, 4
sub eax, edx
shl eax, 2
sub ecx, eax
mov eax, ecx
mov dword [esp + 0xc], eax
mov ecx, dword [ebp - 0x14]
mov eax, 0x91a2b3c5
imul ecx
lea eax, [edx + ecx]
mov edx, eax
sar edx, 0xb
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov dword [esp + 8], eax
mov dword [esp + 4], str.Well_done___youve_completed_the_puzzle____02d:_02d:_02d_
mov dword [esp], 0x409aa0
call sub.cygwin1.dll_sprintf
call sub.cygncurses_8.dll_beep
mov dword [esp], 0x409aa0
call fcn.00403a1a
mov dword [0x409b10], 1
jmp 0x405931
mov dword [esp + 8], 0
mov dword [esp + 4], 0x17
mov eax, dword [sym.imp.cygncurses_8.dll_stdscr]
nop
stosb byte es:[edi], al
inc eax
add byte [ecx - 0x3017dbfc], cl
add byte [eax], al
add al, ch
dec edx
add byte [eax], al
add bh, al
inc ebp
call 0x40632d
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 4]
leave
ret