Function at 0x407590
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x118
push esi
mov esi, ecx
push 1
mov dword [esp + 0x18], esi
call sub.MFC42.DLL_CWnd::UpdateData
mov eax, dword [esi + 0x14f4]
test eax, eax
jl 0x4077ce
cmp eax, 1
jae 0x4077ce
push ebx
push ebp
mov ebp, dword [eax*8 + 0x411fa8]
mov ebx, dword [sym.imp.KERNEL32.DLL_GetTickCount]
xor eax, eax
push edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
call ebx
mov edi, dword [sym.imp.MSVCRT.dll_rand]
mov esi, eax
call edi
imul esi, eax
lea ecx, [esp + 0x10]
push ecx
push 0x6e
push 0x7c
push esi
call fcn.00406d60
lea edx, [esp + 0x20]
push edx
push 0x69
push 0x6d
push 0x1f
call fcn.00406d60
add esp, 0x20
call dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
mov esi, eax
call ebx
imul esi, eax
call edi
imul esi, eax
lea eax, [esp + 0x10]
push eax
push 0x50
push 0x68
push esi
call fcn.00406d60
call edi
lea ecx, [esp + 0x20]
push ecx
push 0x44
push 0x4f
push eax
call fcn.00406d60
lea edx, [esp + 0x30]
push edx
push 0x42
push 0x43
push 0
call fcn.00406d60
lea eax, [esp + 0x40]
push eax
push 0x3f
push 0x41
push 0
call fcn.00406d60
add esp, 0x40
lea ecx, [esp + 0x10]
push ecx
push 0x3d
push 0x3e
push 0
call fcn.00406d60
lea edx, [esp + 0x20]
mov ebx, 0x2d
push edx
push ebx
push 0x3c
push 0
call fcn.00406d60
lea eax, [esp + 0x30]
push eax
push 0x2c
push 0x28
push 0x1f
call fcn.00406d60
lea ecx, [esp + 0xb8]
push ecx
call fcn.0040d6c0
lea edx, [esp + 0x49]
push 0xb
lea eax, [esp + 0xc0]
push edx
push eax
call fcn.0040d6e0
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
add esp, 0x40
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x8c]
push ebp
push ecx
call fcn.0040d6e0
push 0x20
lea edx, [esp + 0x98]
push 0x411fb0
push edx
call fcn.0040d6e0
lea eax, [esp + 0x8c]
lea ecx, [esp + 0xa0]
push eax
push ecx
call fcn.0040d7b0
add esp, 0x20
xor esi, esi
mov eax, 0x412178
mov byte [esp + esi + 0x10], 0
mov ecx, 4
mov edx, dword [eax]
add eax, 4
mov dl, byte [esp + edx + 0x74]
xor byte [esp + esi + 0x10], dl
dec ecx
jne 0x407713
inc esi
cmp eax, str.0123456789ACDEFGHJKLMNPQRTUVWXYZ
jl 0x407709
xor eax, eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x24], eax
lea edx, [esp + 0x10]
mov dword [esp + 0x28], eax
push ecx
mov dword [esp + 0x30], eax
push edx
mov dword [esp + 0x38], eax
call fcn.00406c20
add esp, 8
xor edi, edi
xor esi, esi
lea eax, [esp + 0x24]
lea ecx, [esi + 4]
push eax
push ecx
push esi
call fcn.00406d10
mov dl, byte [eax + str.0123456789ACDEFGHJKLMNPQRTUVWXYZ]
add esp, 0xc
mov byte [esp + edi + 0xe8], dl
add esi, 5
inc edi
cmp esi, 0x7d
jl 0x407753
xor ecx, ecx
mov eax, 0x411fd0
mov esi, dword [eax]
mov dl, byte [esp + ecx + 0xe8]
add eax, 4
inc ecx
cmp eax, 0x412034
mov byte [esp + esi + 0x34], dl
jb 0x407782
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x34]
push eax
add ecx, 0xa28
mov byte [esp + 0x3d], bl
mov byte [esp + 0x43], bl
mov byte [esp + 0x49], bl
mov byte [esp + 0x4f], bl
mov byte [esp + 0x55], 0
call sub.MFC42.DLL_CWnd::SetWindowTextA
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x118
ret
push 0x415188
lea ecx, [esi + 0xa28]
call sub.MFC42.DLL_CWnd::SetWindowTextA
pop esi
add esp, 0x118
ret