Function at 0x401f49
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push eax
push ebx
push ecx
push edx
push esi
push edi
push 0x23
push 0x40606c
push 0x3e9
push dword [ebp + 8]
call sub.user32.dll_GetDlgItemTextA
cmp eax, 1
jae 0x401f96
push str.Name_should_be_at_least_1_character__
push 0x3ea
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
mov dword [0x40666e], 0
jmp 0x4021b5
mov byte [0x406968], al
add eax, 0x40606b
cmp byte [eax], 0x20
jne 0x401fb1
mov byte [eax], 0
dec byte [0x406968]
dec eax
jmp 0x401fa0
cmp byte [0x406968], 1
jge 0x401fd6
push str.Name_should_be_at_least_1_character__
push 0x3ea
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
pop edi
pop esi
pop edx
pop ecx
pop ebx
pop eax
leave
ret 4
push 0x64
push 0x406098
push 0xffffffffffffffff
push 0x40606c
push 0
push 0
call sub.kernel32.dll_MultiByteToWideChar
mov eax, 0x406098
xor ebx, ebx
mov edi, 0x4060e8
cmp byte [eax], 0x20
jne 0x402003
add eax, 2
jmp 0x401ff9
inc eax
mov ebx, 2
movzx edx, byte [eax]
push edx
shr edx, 4
add edx, 0x30
mov byte [edi], dl
inc edi
pop edx
shl edx, 0x1c
shr edx, 0x1c
cmp edx, 0xa
jl 0x402027
add edx, 0x37
jmp 0x40202a
add edx, 0x30
mov byte [edi], dl
inc edi
dec eax
dec ebx
cmp ebx, 0
jne 0x402009
add eax, 3
cmp byte [eax], 0
jne 0x402003
mov byte [edi], 0
mov ecx, 0x4060e8
xor eax, eax
push esi
push edi
movzx edi, byte [ecx]
movzx esi, al
shr ax, 8
xor esi, edi
xor ax, word [esi*2 + 0x40646e]
inc ecx
movzx eax, ax
cmp byte [ecx], 0
jne 0x402048
pop edi
pop esi
shr eax, 8
push eax
shr eax, 4
cmp eax, 0xa
jl 0x402076
add eax, 7
add eax, 0x30
push eax
shr eax, 4
add eax, 0x30
mov byte [0x406403], al
pop eax
shl eax, 0x1c
shr eax, 0x1c
cmp eax, 0xa
jl 0x402094
add eax, 7
add eax, 0x30
mov byte [0x406404], al
pop eax
shl eax, 0x1c
shr eax, 0x1c
cmp eax, 0xa
jl 0x4020ab
add eax, 7
add eax, 0x30
push eax
shr eax, 4
cmp eax, 0xa
jl 0x4020ba
add eax, 7
add eax, 0x30
mov byte [0x406407], al
pop eax
shl eax, 0x1c
shr eax, 0x1c
cmp eax, 0xa
jl 0x4020d1
add eax, 7
add eax, 0x30
mov byte [0x406408], al
call fcn.00402261
mov eax, 0x406413
mov ebx, 5
push 1
lea eax, [eax]
push eax
call fcn.004023a3
add edi, 2
mov eax, edi
dec ebx
cmp ebx, 0
jne 0x4020e8
cmp byte [eax], 0
je 0x402107
add eax, 4
jmp 0x4020e3
xor eax, eax
call fcn.00402328
mov ecx, str.004400460045002D00310032003200330033002D00340034003500350041002D00420042004300430044002D00440045004500460046
push esi
push edi
movzx edi, byte [ecx]
movzx esi, al
shr ax, 8
xor esi, edi
xor ax, word [esi*2 + 0x40646e]
inc ecx
movzx eax, ax
cmp byte [ecx], 0
jne 0x402115
pop edi
pop esi
shr ax, 8
mov byte [0x40666e], al
shr ax, 4
cmp al, 0
jne 0x4020de
mov al, byte [0x40666e]
cmp al, 9
jle 0x402152
add al, 0x37
jmp 0x402154
add al, 0x30
mov ebx, 0x40666e
mov byte [ebx], 0x30
inc ebx
mov byte [ebx], al
mov eax, 0x406403
cmp byte [eax + 1], 0x44
jne 0x402171
add eax, 4
inc ebx
mov byte [ebx], 0x2d
inc ebx
mov dl, byte [eax]
sub edx, 0x30
shl edx, 4
inc eax
add dl, byte [eax]
sub edx, 0x30
mov byte [ebx], dl
add eax, 3
cmp byte [eax], 0
jne 0x402164
mov edi, 0x40666e
xor eax, eax
push 5
lea eax, [edi]
push eax
call fcn.004023da
cmp byte [edi], 0
je 0x4021a3
inc edi
jmp 0x402191
push 0x40666e
push 0x3ea
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
call fcn.004021c4
pop edi
pop esi
pop edx
pop ecx
pop ebx
pop eax
leave
ret 4