Function at 0x401000
Capabilities:
Check mutex on windows
Extract resource via kernel32 functions

Disassembly:
push 0x406200
push 1
push 0
call sub.kernel32.dll_CreateMutexA
call sub.kernel32.dll_GetLastError
test eax, 0xb7
jne 0x4010a2
push 0
call sub.kernel32.dll_GetModuleHandleA
mov dword [0x406206], eax
push esi
push 0xa
push 0x1f7
push dword [0x406206]
call sub.kernel32.dll_FindResourceA
push eax
push eax
push dword [0x406206]
call sub.kernel32.dll_SizeofResource
mov dword [0x406341], eax
pop eax
push eax
push dword [0x406206]
call sub.kernel32.dll_LoadResource
push eax
call sub.kernel32.dll_LockResource
mov esi, eax
mov eax, dword [0x406341]
add eax, 4
push eax
push 0x40
call sub.kernel32.dll_GlobalAlloc
mov dword [0x40633d], eax
mov ecx, dword [0x406341]
mov dword [eax], ecx
add eax, 4
mov edi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
push 0
push 0x4010b4
push 0
push 0x406200
push dword [0x406206]
call sub.user32.dll_DialogBoxParamA
push dword [0x40633d]
call sub.kernel32.dll_GlobalFree
push 0
call sub.kernel32.dll_ExitProcess
push ebp
mov ebp, esp
cmp dword [ebp + 0xc], 0x110
jne 0x401103
push 0x1f6
push dword [0x406206]
call sub.user32.dll_LoadIconA
push eax
push 0
push 0x80
push dword [ebp + 8]
call sub.user32.dll_SendMessageA
push 0
push 0x55
push 0xc5
push 0x64
push dword [ebp + 8]
call sub.user32.dll_SendDlgItemMessageA
push dword [0x40633d]
call fcn.00401441
jmp 0x40137d
cmp dword [ebp + 0xc], 0x111
jne 0x401366
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x10]
shr edx, 0x10
or dx, dx
jne 0x40137d
cmp ax, 0x3ec
jne 0x40132c
push eax
push ebx
push ebp
push 0x200
push 0x406349
push 0x3ea
push dword [ebp + 8]
call sub.user32.dll_GetDlgItemTextA
cmp eax, 3
ja 0x401163
push 0x10
push str.Bad_boy...
push str.Username_must_have_at_least_4_chars...
push dword [ebp + 8]
call sub.user32.dll_MessageBoxA
leave
ret 0x10
lea edx, [0x406349]
push edx
call sub.kernel32.dll_lstrlenA
mov ebp, eax
mov ecx, 5
xor esi, esi
xor eax, eax
mov cl, byte [esi + edx]
mov bl, cl
xor bl, byte [eax + 0x406328]
inc eax
cmp eax, 5
mov byte [edx + esi], bl
mov byte [eax + 0x406327], cl
jne 0x401196
xor eax, eax
inc esi
cmp esi, ebp
jb 0x40117a
xor edi, edi
xor ecx, ecx
test ebp, ebp
jbe 0x4011c9
mov bl, byte [edi + 0x40632d]
mov esi, ebp
sub esi, ecx
dec esi
mov al, byte [edx + esi]
xor bl, al
inc edi
mov byte [edx + esi], bl
mov byte [edi + 0x40632c], al
cmp edi, 5
jne 0x4011c4
xor edi, edi
inc ecx
cmp ecx, ebp
jb 0x4011a3
xor esi, esi
xor edi, edi
test ebp, ebp
jbe 0x4011f2
mov al, byte [edx + edi]
mov cl, byte [esi + 0x406332]
xor cl, al
inc esi
mov byte [edx + edi], cl
mov byte [esi + 0x406331], al
cmp esi, 5
jne 0x4011ed
xor esi, esi
inc edi
cmp edi, ebp
jb 0x4011d1
xor edi, edi
xor ecx, ecx
test ebp, ebp
jbe 0x401220
mov bl, byte [edi + 0x406337]
mov esi, ebp
sub esi, ecx
dec esi
mov al, byte [edx + esi]
xor bl, al
inc edi
mov byte [edx + esi], bl
mov byte [edi + 0x406336], al
cmp edi, 5
jne 0x40121b
xor edi, edi
inc ecx
cmp ecx, ebp
jb 0x4011fa
lea edi, [0x406345]
xor eax, eax
test ebp, ebp
mov dword [0x406345], 0
jbe 0x40124d
mov ecx, eax
and ecx, 3
mov bl, byte [edi + ecx]
lea esi, [edi + ecx]
mov cl, byte [edx + eax]
add bl, cl
inc eax
cmp eax, ebp
mov byte [esi], bl
jb 0x401236
pop ebp
mov ecx, 0xa
mov eax, dword [0x406345]
xor ebx, ebx
xor edx, edx
div ecx
add dl, 0x30
mov byte [ebx + 0x406549], dl
inc ebx
test eax, eax
jne 0x40125a
push 0x406549
call sub.kernel32.dll_lstrlenA
xor ebx, ebx
mov cl, byte [eax + 0x406548]
mov byte [ebx + 0x406749], cl
inc ebx
dec eax
jne 0x401278
push 0x406749
push 0x406549
call sub.kernel32.dll_lstrcpyA
push 0x200
push 0x406949
push 0x64
push dword [ebp + 8]
call sub.user32.dll_GetDlgItemTextA
push 0x406549
push 0x406949
call sub.kernel32.dll_lstrcmpA
or eax, eax
jne 0x4012d4
push 0x40
push str.Good_boy...
push str.Yep__thats_the_right_code__n_rGo_write_a_keygen_
push dword [ebp + 8]
call sub.user32.dll_MessageBoxA
jmp 0x4012e8
push 0x10
push str.Bad_boy...
push 0x635a5
push dword [ebp + 8]
call sub.user32.dll_MessageBoxA
push 0x200
push 0x406549
call sub.kernel32.dll_RtlZeroMemory
push 0x200
push 0x406349
call sub.kernel32.dll_RtlZeroMemory
push 0x200
push 0x406749
call sub.kernel32.dll_RtlZeroMemory
mov ecx, 0x16
lea esi, [0x406311]
lea edi, [0x406327]
rep movsb byte es:[edi], byte [esi]
pop ebx
pop eax
jmp 0x401364
cmp ax, 0x3ee
jne 0x401346
push 0
call fcn.00401441
push eax
push ebx
push 0
call sub.kernel32.dll_ExitProcess
pop ebx
pop eax
jmp 0x401364
cmp ax, 0x3ed
jne 0x401364
push eax
push ebx
push 0x40
push str.About...
push str.Coded_by_LaFarge___BiW_n_rProtection:_Custom_n_r_n_rAppName:_CrackMe_2_n_rOS:_WinALL_n_rDate:_1_1_2005_n_r_n_r_c__LaFarge_2005
push dword [ebp + 8]
call sub.user32.dll_MessageBoxA
pop ebx
pop eax
jmp 0x40137d
cmp dword [ebp + 0xc], 0x10
jne 0x40137d
push 0
call fcn.00401441
push 0
push dword [ebp + 8]
call sub.user32.dll_EndDialog
xor eax, eax
leave
ret 0x10