Function at 0x4010ba
Capabilities:
Encode data using xor
Get graphical window text

Disassembly:
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 [0x40637c], 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 [0x40637c]
add eax, 4
push eax
push 0x40
call sub.kernel32.dll_GlobalAlloc
mov dword [0x406378], eax
mov ecx, dword [0x40637c]
mov dword [eax], ecx
add eax, 4
mov edi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x40108f
push 0
push 0x4010ba
push 0
push 0x406200
push dword [0x406206]
call sub.user32.dll_DialogBoxParamA
push dword [0x406378]
call sub.kernel32.dll_GlobalFree
push 0
call sub.kernel32.dll_ExitProcess
push ebp
mov ebp, esp
cmp dword [ebp + 0xc], 0x110
jne 0x401109
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 [0x406378]
call fcn.004013c1
jmp 0x401311
cmp dword [ebp + 0xc], 0x111
jne 0x4012fa
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x10]
shr edx, 0x10
or dx, dx
jne 0x401311
cmp ax, 0x3ec
jne 0x4012c0
push eax
push ebx
push ebp
push 0x3ea
push dword [ebp + 8]
call sub.user32.dll_GetDlgItem
push 0x406384
push 0x40
push 0xd
push eax
call sub.user32.dll_SendMessageA
cmp eax, 3
ja 0x40116e
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
push str._r_____1_Z2_l5_
call sub.kernel32.dll_lstrlenA
mov dword [0x406b9c], eax
mov ebx, eax
push 0x406384
call sub.kernel32.dll_lstrlenA
mov dword [0x406b98], eax
mov esi, eax
xor esi, esi
push str._r_____1_Z2_l5_
push 0x406584
call sub.kernel32.dll_lstrcpyA
lea edi, [0x406584]
push eax
mov eax, dword [0x406b98]
cmp eax, dword [0x406b9c]
ja 0x4011c1
mov eax, dword [0x406b9c]
mov dword [0x406ba0], eax
jmp 0x4011c6
mov dword [0x406ba0], eax
pop eax
mov eax, esi
push 0x19
cdq
idiv dword [0x406b9c]
mov eax, esi
pop ebx
lea ecx, [edi + edx]
cdq
idiv dword [0x406b98]
lea eax, [0x406384]
movzx eax, byte [eax + edx]
movzx edx, byte [ecx]
xor eax, edx
cdq
idiv ebx
add dl, 0x41
inc esi
cmp esi, dword [0x406ba0]
mov byte [ecx], dl
jl 0x4011c7
lea esi, [0x406584]
lea edi, [0x406b84]
movsd dword es:[edi], dword [esi]
mov byte [0x406b88], 0x2d
lea esi, [0x406588]
lea edi, [0x406b89]
movsd dword es:[edi], dword [esi]
mov byte [0x406b8d], 0x2d
lea esi, [0x40658c]
lea edi, [0x406b8e]
movsd dword es:[edi], dword [esi]
mov byte [0x406b92], 0x2d
lea esi, [0x406590]
lea edi, [0x406b93]
movsd dword es:[edi], dword [esi]
push 0x64
push dword [ebp + 8]
call sub.user32.dll_GetDlgItem
push 0x406584
push 0x40
push 0xd
push eax
call sub.user32.dll_SendMessageA
or eax, eax
jne 0x40127b
push 0x10
push str.Bad_boy...
push str.Ummm__no_serial_entered__U_have_brain__right_
push dword [ebp + 8]
call sub.user32.dll_MessageBoxA
jmp 0x4012bc
push 0x406584
push 0x406b84
call sub.kernel32.dll_lstrcmpA
or eax, eax
jne 0x40128e
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
leave
ret 0x10
pop ebx
pop eax
jmp 0x4012f8
cmp ax, 0x3ee
jne 0x4012da
push 0
call fcn.004013c1
push eax
push ebx
push 0
call sub.kernel32.dll_ExitProcess
pop ebx
pop eax
jmp 0x4012f8
cmp ax, 0x3ed
jne 0x4012f8
push eax
push ebx
push 0x40
push str.About...
push str.Coded_by_LaFarge___ICU_n_rProtection:_Custom_n_r_n_rAppName:_CrackedMe0.2_n_rOS:_Win2k_XP_n_rDate:_19_01_2006_n_r_n_rGFX:_QuEST___CPH_n_rChiptune:_crome___SAC_n_r_n_r_c__LaFarge_2006
push dword [ebp + 8]
call sub.user32.dll_MessageBoxA
pop ebx
pop eax
jmp 0x401311
cmp dword [ebp + 0xc], 0x10
jne 0x401311
push 0
call fcn.004013c1
push 0
push dword [ebp + 8]
call sub.user32.dll_EndDialog
xor eax, eax
leave
ret 0x10