Function "IsValidDigit"
IsValidDigit proc digit:dword, cellx:dword, lpBoard:dword, lpCandx:dword
push esi
invoke GetCandidates, cellx, lpBoard, lpCandx
mov edx, digit
mov esi, eax
xor ecx, ecx
@@:
mov al, [esi+ecx]
cmp al, dl
jz valid
inc ecx
cmp ecx, 9
jnz @b
mov eax, -1
pop esi
ret
valid:
mov eax, digit
pop esi
ret
IsValidDigit endpedit = forgot a push/pop esi fixed. In attachment also
Full source attached.