dword_402050 dd 0 ; DATA XREF: start+121w
; char WindowName[]
WindowName db 'PhoX',27h,'s CrackMe 3.0',0 ; DATA XREF: start+AAo
; char ClassName[]
ClassName db 'ASMClass',0 ; DATA XREF: start+74o
; start+AFo
; char aEdit[]
aEdit db 'Edit',0 ; DATA XREF: start+E2o
; char aOk[]
aOk db 'Ok',0 ; DATA XREF: start+110o
; char aButton[]
aButton db 'Button',0 ; DATA XREF: start+115o
; char Caption[]
Caption db 'Nice Work!!',0 ; DATA XREF: sub_401159+A7o
; char Text[]
Text db 'Right Code! ',0 ; DATA XREF: sub_401159+ACo
; char String[]
String db 28h dup(0) ; DATA XREF: sub_401159+3Do
; sub_401159+4Do
; char aSorry___Hehehe[]
aSorry___Hehehe db 'Sorry...(hehehe)',0 ; DATA XREF: sub_401159+C5o
; char aWrongCode[]
aWrongCode db 'Wrong Code!',0 ; DATA XREF: sub_401159+CAo
;------------------------------------------------------------------------------
; CODE
;------------------------------------------------------------------------------
.code
public start
start proc near
local @stWndClass:WNDCLASSEX
enter 0, 0
push ebx
push edi
push esi
cmp [ebp+Msg], 111h
jz short loc_40118B
cmp [ebp+Msg], 2
jz loc_40123C
push [ebp+lParam] ; lParam
push [ebp+wParam] ; wParam
push [ebp+Msg] ; Msg
push [ebp+hWnd] ; hWnd
call DefWindowProcA
pop esi
pop edi
pop ebx
leave
retn 10h
; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪
loc_40118B: ; CODE XREF: sub_401159+Ej
cmp [ebp+wParam], 20h
jnz loc_401233
push esi ; nMaxCount
push offset String ; lpString
push ds:hWnd ; hWnd
call GetWindowTextA
mov ebx, offset String
push ds:hWnd ; hWnd
call GetWindowTextLengthA
mov esi, eax
cmp esi, 12h
jnz short loc_40121C
cmp byte ptr [ebx], 46h
jnz short loc_40121C
cmp byte ptr [ebx+1], 69h
jnz short loc_40121C
cmp byte ptr [ebx+3], 72h
jnz short loc_40121C
cmp byte ptr [ebx+4], 65h
jnz short loc_40121C
cmp byte ptr [ebx+6], 57h
jnz short loc_40121C
cmp byte ptr [ebx+7], 6Fh
jnz short loc_40121C
cmp byte ptr [ebx+8], 72h
jnz short loc_40121C
cmp byte ptr [ebx+0Ah], 78h
jnz short loc_40121C
cmp byte ptr [ebx+0Ch], 53h
jnz short loc_40121C
cmp byte ptr [ebx+0Dh], 75h
jnz short loc_40121C
cmp byte ptr [ebx+10h], 78h
jnz short loc_40121C
push 30h ; uType
push offset Caption ; lpCaption
push offset Text ; lpText
push ds:hWndParent ; hWnd
call MessageBoxA
pop esi
pop edi
pop ebx
leave
retn 10h
; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪
loc_40121C: ; CODE XREF: sub_401159+62j
; sub_401159+67j ...
push 30h ; uType
push offset aSorry___Hehehe ; lpCaption
push offset aWrongCode ; lpText
push ds:hWndParent ; hWnd
call MessageBoxA
loc_401233: ; CODE XREF: sub_401159+36j
xor eax, eax
pop esi
pop edi
pop ebx
leave
retn 10h
; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪
loc_40123C: ; CODE XREF: sub_401159+14j
push 0 ; nExitCode
call PostQuitMessage
mov eax, 0
pop esi
pop edi
pop ebx
leave
retn 10h
sub_401159 endp
end start