Function at 0x401410
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x403aba
push eax
mov eax, 0x10294
mov dword fs:[0], esp
call fcn.004035f0
mov eax, dword [esp + 0x102b0]
test eax, eax
jbe 0x401f68
xor eax, eax
mov byte [esp + eax + 0xcc], al
inc eax
cmp eax, 0x101c7
jb 0x401440
push ebx
push ebp
mov ebp, dword [esp + 0x102ac]
push esi
push edi
mov edi, dword [esp + 0x102b8]
xor esi, esi
xor ecx, ecx
mov eax, ecx
xor edx, edx
div edi
mov bl, byte [esp + ecx + 0xdc]
xor eax, eax
mov al, byte [edx + ebp]
mov edx, eax
mov eax, ebx
and eax, 0xff
add esi, edx
add eax, esi
xor edx, edx
mov esi, 0x101c7
div esi
inc ecx
cmp ecx, 0x101c7
mov esi, edx
mov al, byte [esp + esi + 0xdc]
mov byte [esp + ecx + 0xdb], al
mov byte [esp + esi + 0xdc], bl
jb 0x401465
mov ecx, dword [esp + 0x102c0]
mov edx, dword [esp + 0x102bc]
xor ebx, ebx
xor eax, eax
dec ecx
mov dword [esp + 0x10], edx
inc ecx
or esi, 0xffffffff
mov dword [esp + 0xc4], ecx
mov ebp, 0x2c
mov edi, 0x2d
jmp 0x4014e6
mov ebx, dword [esp + 0xd4]
mov eax, dword [esp + 0x78]
inc eax
xor edx, edx
mov ecx, 0x101c7
push 0
div ecx
push 0
mov dword [esp + 0x80], edx
mov cl, byte [esp + edx + 0xe4]
xor edx, edx
mov eax, ecx
mov byte [esp + 0xe0], cl
and eax, 0xff
add eax, ebx
mov ebx, 0x101c7
div ebx
mov eax, dword [esp + 0x80]
mov bl, byte [esp + edx + 0xe4]
mov byte [esp + eax + 0xe4], bl
mov byte [esp + edx + 0xe4], cl
mov ecx, dword [esp + 0xe0]
and ecx, 0xff
mov dword [esp + 0xdc], edx
lea edx, [esp + edx + 0xe4]
xor edx, edx
mov dl, byte [esp + eax + 0xe4]
mov eax, edx
add eax, ecx
mov ecx, 0x101c7
cdq
idiv ecx
mov bl, byte [esp + edx + 0xe4]
mov edx, dword [esp + 0x18]
xor bl, byte [edx]
call dword [sym.imp.USER32.dll_GetSystemMenu]
test eax, eax
je 0x401f2d
lea ecx, [esp + 0xcc]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xd0]
mov dword [esp + 0x102b0], 0
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xcc]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x24]
mov dword [esp + 0x102b0], 1
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x20]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x80]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x84]
mov dword [esp + 0x102b0], 2
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x80]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x2c]
mov dword [esp + 0x102b0], 3
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x28]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0xb0]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xb4]
mov dword [esp + 0x102b0], 4
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xb0]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x34]
mov dword [esp + 0x102b0], 5
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x30]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x88]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x8c]
mov dword [esp + 0x102b0], 6
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x88]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x3c]
mov dword [esp + 0x102b0], 7
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x38]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0xc8]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xcc]
mov dword [esp + 0x102b0], 8
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xc8]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x40]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x44]
mov dword [esp + 0x102b0], 9
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x40]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x90]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x94]
mov dword [esp + 0x102b0], 0xa
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x90]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x48]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x4c]
mov dword [esp + 0x102b0], 0xb
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x48]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0xb8]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xbc]
mov dword [esp + 0x102b0], 0xc
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xb8]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x50]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x54]
mov dword [esp + 0x102b0], 0xd
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x50]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x98]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x9c]
mov dword [esp + 0x102b0], 0xe
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x98]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x5c]
mov dword [esp + 0x102b0], 0xf
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x58]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0xd0]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xd4]
mov dword [esp + 0x102b0], 0x10
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xd0]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x60]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x64]
mov dword [esp + 0x102b0], 0x11
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x60]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0xa0]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xa4]
mov dword [esp + 0x102b0], 0x12
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xa0]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x68]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x6c]
mov dword [esp + 0x102b0], 0x13
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x68]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0xc0]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xc4]
mov dword [esp + 0x102b0], 0x14
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xc0]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x70]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x74]
mov dword [esp + 0x102b0], 0x15
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x70]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0xa8]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xac]
mov dword [esp + 0x102b0], 0x16
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xa8]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x18]
mov dword [esp + 0x102b0], 0x17
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x14]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x1c]
mov dword [esp + 0x102b0], 0x18
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x18]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x20]
mov dword [esp + 0x102b0], 0x19
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x1c]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x28]
mov dword [esp + 0x102b0], 0x1a
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x24]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x30]
mov dword [esp + 0x102b0], 0x1b
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x2c]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x34]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x38]
mov dword [esp + 0x102b0], 0x1c
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x34]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x40]
mov dword [esp + 0x102b0], 0x1d
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x3c]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x44]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x48]
mov dword [esp + 0x102b0], 0x1e
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x44]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x4c]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x50]
mov dword [esp + 0x102b0], 0x1f
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x4c]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x54]
call sub.MFC42.DLL_CString::CString
mov dword [esp + 0x102ac], 0x20
push 0x23500d
lea ecx, [esp + 0x58]
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x54]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x5c]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x60]
mov dword [esp + 0x102b0], 0x21
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x5c]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x64]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x68]
mov dword [esp + 0x102b0], 0x22
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x64]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x6c]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x70]
mov dword [esp + 0x102b0], 0x23
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x6c]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x74]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x78]
mov dword [esp + 0x102b0], 0x24
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x74]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x7c]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x80]
mov dword [esp + 0x102b0], 0x25
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x7c]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x84]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x88]
mov dword [esp + 0x102b0], 0x26
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x84]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x8c]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0x90]
mov dword [esp + 0x102b0], 0x27
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x8c]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x94]
call sub.MFC42.DLL_CString::CString
mov dword [esp + 0x102ac], 0x28
push 0x23500d
lea ecx, [esp + 0x98]
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x94]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0x9c]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xa0]
mov dword [esp + 0x102b0], 0x29
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0x9c]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0xa4]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xa8]
mov dword [esp + 0x102b0], 0x2a
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xa4]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0xac]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xb0]
mov dword [esp + 0x102b0], 0x2b
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xac]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0xb4]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xb8]
mov dword [esp + 0x102b0], ebp
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xb4]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
lea ecx, [esp + 0xbc]
call sub.MFC42.DLL_CString::CString
push 0x23500d
lea ecx, [esp + 0xc0]
mov dword [esp + 0x102b0], edi
call sub.MFC42.DLL_CString::LoadStringA
lea ecx, [esp + 0xbc]
mov dword [esp + 0x102ac], esi
call fcn.004034e4
mov eax, dword [esp + 0x10]
mov byte [eax], bl
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc4]
dec eax
mov dword [esp + 0xc4], eax
jne 0x4014db
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x10294]
mov dword fs:[0], ecx
add esp, 0x102a0
ret
mov ecx, dword [esp + 0x10294]
xor eax, eax
mov dword fs:[0], ecx
add esp, 0x102a0
ret