Function at 0x409540
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Encrypt data using rc4 prga
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x98
mov edi, dword [esp + 0xac]
mov dword [esp + 0x14], ecx
add edi, dword [ecx + 0x60]
mov dword [esp + 0x6c], 0xada8aa81
mov dword [esp + 0x70], 0xeeaaada3
mov dword [esp + 0x74], 0xaaa25c88
mov dword [esp + 0x78], 0xa1b1f79e
mov dword [esp + 0x7c], 0x918f8ca0
mov dword [esp + 0x80], 0x999c949b
mov dword [esp + 0x84], 0x90d16bdd
mov dword [esp + 0x88], 0x809d9986
mov dword [esp + 0x8c], 0xeae4e890
mov word [esp + 0x90], 0xffe6
mov dword [esp + 0x92], 0
mov word [esp + 0x96], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2b
ja 0x40962c
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x6c]
lea eax, [ecx + edx]
add eax, 0xbeb0f94f
add ecx, 0x4f
and ecx, edx
mov edx, eax
not edx
and edx, ecx
mov esi, ecx
not esi
and eax, esi
sub eax, edx
mov edx, eax
not edx
and edx, ecx
and eax, esi
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x75
mov ecx, dword [esp]
mov byte [esp + ecx + 0x6c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2c
jb 0x4095e0
mov dword [esp], 0x83888ce2
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x40968e
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx]
lea edx, [eax + ecx]
add eax, 0xa0
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x961e08a0
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xe0
mov ecx, dword [esp + 8]
mov byte [esp + ecx], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x409650
mov dword [esp + 0x18], 0x5e500405
mov dword [esp + 0x1c], 0x52520004
mov dword [esp + 0x20], 0x574a5005
mov dword [esp + 0x24], 0x2a2f2633
mov dword [esp + 0x28], 0x722f3332
mov dword [esp + 0x2c], 0x380d4759
mov dword [esp + 0x30], 0x3d27353e
mov dword [esp + 0x34], 0x3e1a6028
mov dword [esp + 0x38], 0x20252123
mov dword [esp + 0x3c], 0x28372135
mov dword [esp + 0x40], 0x357a632e
mov dword [esp + 0x44], 0x52131713
mov dword [esp + 0x48], 0x21e000c
mov dword [esp + 0x4c], 0xe184d57
mov dword [esp + 0x50], 0x492f041d
mov dword [esp + 0x54], 0x1a021c1a
mov dword [esp + 0x58], 0x1d524a52
mov dword [esp + 0x5c], 0x9130915
mov dword [esp + 0x60], 0x3e170c19
mov word [esp + 0x64], 0x85a6
mov dword [esp + 0x66], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x51
ja 0x40979d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x18]
lea edx, [eax + ecx]
add eax, 0xb4
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xe459b4b4
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
mov ecx, eax
xor ecx, 0x84
and eax, 0x7b
add eax, eax
sub eax, ecx
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x52
jb 0x409750
mov eax, dword [esp + 0xb0]
movzx ecx, byte [esp + 0x18]
mov edx, edi
test cl, cl
je 0x4097cb
lea esi, [esp + 0x19]
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x4097c0
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x4097eb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x4097e0
mov byte [edx], 0
movzx eax, byte [esp]
test al, al
je 0x40980b
lea ecx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409800
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xb4]
mov byte [edx], 0
movzx eax, byte [esp + 0x6c]
test al, al
mov dword [esp + 0x10], edi
je 0x40983b
lea ecx, [esp + 0x6d]
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409830
mov byte [edx], 0
mov ecx, ebx
shr ecx, 2
mov eax, ebp
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea esi, [edx + eax]
add eax, ebp
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov ebp, eax
mov edi, esi
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
test bl, 1
je 0x409878
mov ecx, ebx
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x18], 0xeeefcbcd
mov dword [esp + 0x1c], 0x929ea0a6
mov dword [esp + 0x20], 0xa29facac
mov dword [esp + 0x24], 0xaca1a95c
mov dword [esp + 0x28], 0x61609499
mov dword [esp + 0x2c], 0xfdfba491
mov word [esp + 0x30], 0xf3f5
mov byte [esp + 0x32], 0xfa
mov dword [esp + 0x33], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1e
mov edi, dword [esp + 0x10]
ja 0x409915
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx esi, byte [esp + ecx + 0x18]
lea ecx, [eax + esi]
add eax, 0xd0
and eax, esi
sub ecx, eax
add ecx, 0x9696ced0
mov esi, ecx
not esi
and esi, eax
not eax
and eax, ecx
sub eax, esi
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
add al, 0xf0
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x1f
jb 0x4098d0
add edx, ebx
movzx eax, byte [esp + 0x18]
test al, al
je 0x40993b
lea ecx, [esp + 0x19]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409930
mov byte [edx], 0
sub edx, edi
mov eax, dword [esp + 0x14]
add dword [eax + 0x60], edx
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret 0x10