Function at 0x409df0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb8
mov ebx, dword [ebp + 8]
mov dword [esp + 0x7c], ecx
add ebx, dword [ecx + 0x60]
mov dword [esp + 0x80], 0xf70c0e23
mov dword [esp + 0x84], 0x4af20b01
mov dword [esp + 0x88], 0xefaf01c
mov dword [esp + 0x8c], 0xfb0f4d36
mov dword [esp + 0x90], 0xfbf1f004
mov dword [esp + 0x94], 0x3f8f0f9
mov dword [esp + 0x98], 0xf4b701b7
mov dword [esp + 0x9c], 0xfcfbf7fe
mov dword [esp + 0xa0], 0x8e888c14
mov word [esp + 0xa4], 0x858e
mov dword [esp + 0xa6], 0
mov dword [esp + 0xaa], 0
mov word [esp + 0xae], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x2f
ja 0x409ef5
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x80]
lea edx, [eax + 0xf0]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xe685c7f0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x70
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x30
jb 0x409eb0
mov dword [esp + 8], 0xabaab640
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov word [esp + 0x14], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x409f70
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
mov edx, eax
and edx, 0xd8db53c5
xor eax, 0x58db53c5
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add al, 0x9d
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x409f30
mov dword [esp + 0x20], 0x9690cccd
mov dword [esp + 0x24], 0x9292c0fc
mov dword [esp + 0x28], 0xafbab0fd
mov dword [esp + 0x2c], 0xaab7aeb3
mov dword [esp + 0x30], 0xf2a7b3b2
mov dword [esp + 0x34], 0xb8c51f19
mov dword [esp + 0x38], 0xa5bfada6
mov dword [esp + 0x3c], 0xa6dae0a8
mov dword [esp + 0x40], 0xa0ada1a3
mov dword [esp + 0x44], 0xa8afa1ad
mov dword [esp + 0x48], 0x4d0a2356
mov dword [esp + 0x4c], 0x12535f53
mov dword [esp + 0x50], 0x42564044
mov dword [esp + 0x54], 0x4658052f
mov dword [esp + 0x58], 0x19375c45
mov dword [esp + 0x5c], 0x5a42445a
mov dword [esp + 0x60], 0x55123a12
mov dword [esp + 0x64], 0x4953494d
mov dword [esp + 0x68], 0x66f7469
mov word [esp + 0x6c], 0xcd2e
mov dword [esp + 0x6e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x51
ja 0x40a07d
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x20]
lea edx, [eax + 0x60e8ef58]
mov esi, ecx
not esi
or esi, edx
add esi, ecx
inc esi
and edx, ecx
mov edi, esi
and edi, edx
xor edx, esi
add eax, ecx
add eax, 0x60e8ef58
lea ecx, [edx + edi*2]
sub eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x98
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x52
jb 0x40a030
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x20]
mov edx, ebx
test cl, cl
je 0x40a0ab
lea esi, [esp + 0x21]
mov edx, ebx
nop
nop
nop
nop
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 0x40a0a0
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40a0cb
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 0x40a0c0
mov byte [edx], 0
movzx eax, byte [esp + 8]
test al, al
je 0x40a0eb
lea ecx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a0e0
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx eax, byte [esp + 0x80]
test al, al
mov dword [esp + 0x78], ebx
je 0x40a11b
lea ecx, [esp + 0x81]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a110
mov byte [edx], 0
mov ebx, dword [ebp + 0x14]
mov ecx, ebx
shr ecx, 2
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea edi, [edx + eax]
mov dword [esp + 0x1c], edi
add eax, esi
and ebx, 3
mov ecx, ebx
shr ecx, 1
mov esi, eax
mov edi, dword [esp + 0x1c]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x14]
xor ecx, 2
and ecx, ebx
je 0x40a187
mov edi, dword [ebp + 0x14]
and edi, 2
movzx ebx, byte [eax + edi]
mov byte [esi + edi], bl
cmp ecx, 1
je 0x40a187
movzx ebx, byte [eax + edi + 1]
mov byte [esi + edi + 1], bl
cmp ecx, 2
je 0x40a187
movzx eax, byte [eax + edi + 2]
mov byte [esi + edi + 2], al
mov dword [esp + 0x20], 0xeeef938d
mov dword [esp + 0x24], 0x9a9e4846
mov dword [esp + 0x28], 0x4a9f4c4c
mov dword [esp + 0x2c], 0x4c59415c
mov dword [esp + 0x30], 0x59584441
mov dword [esp + 0x34], 0xfde38459
mov word [esp + 0x38], 0xfbe5
mov byte [esp + 0x3a], 0xf2
mov dword [esp + 0x3b], 0
mov dword [esp + 0x3f], 0
mov dword [esp + 0x42], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x25
ja 0x40a233
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x20]
lea esi, [eax - 0x7fd0ed44]
add eax, 0xbc
and eax, ecx
or esi, ecx
sub esi, eax
mov dword [esp + 0x80], esi
mov eax, dword [esp + 0x80]
add al, 0xdc
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x26
jb 0x40a1f0
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x20]
test al, al
mov esi, dword [esp + 0x78]
je 0x40a25b
lea ecx, [esp + 0x21]
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 0x40a250
mov byte [edx], 0
sub edx, esi
mov eax, dword [esp + 0x7c]
add dword [eax + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10