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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov dword [esp + 0x38], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 4], eax
mov dword [esp + 0x10], 0x7b444aa7
mov dword [esp + 0x14], 0x867e4749
mov dword [esp + 0x18], 0x727e785c
mov dword [esp + 0x1c], 0x476bad8a
mov dword [esp + 0x20], 0x7f796844
mov dword [esp + 0x24], 0x4f707871
mov dword [esp + 0x28], 0x6cab49b3
mov dword [esp + 0x2c], 0x64676b62
mov dword [esp + 0x30], 0xc2c0cc54
mov dword [esp + 0x34], 0xd5c2
mov edi, 0x4e1d0356
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi - 0x4e1d0346]
xor eax, edi
mov edx, eax
and edx, 0x51
xor eax, 0x796eef51
lea edx, [eax + edx*2]
and eax, 1
xor edx, 1
lea eax, [edx + eax*2]
mov byte [esp + edi - 0x4e1d0346], al
inc edi
cmp edi, 0x4e1d037e
jne 0x4098e0
mov dword [esp], 0xe3f8fcc2
xor edi, edi
mov ebp, 0x2f8f04d7
nop
nop
movzx ebx, byte [esp + edi]
lea edx, [edi - 0x2f8f04d8]
mov esi, edx
and esi, ebx
add esi, esi
sub esi, ebx
add esi, ebp
and esi, edx
add esi, esi
xor edx, esi
mov eax, edi
xor eax, 0x2f8f04d7
and eax, esi
add eax, eax
sub eax, edx
mov edx, eax
xor edx, ebx
not eax
and eax, ebx
add eax, eax
sub eax, edx
add al, 0x38
mov byte [esp + edi], al
inc edi
dec ebp
cmp edi, 4
jne 0x409920
mov dword [esp + 0x3c], 0xec014b4d
mov dword [esp + 0x40], 0xe9e3d1ea
mov dword [esp + 0x44], 0xe20e24dc
mov dword [esp + 0x48], 0xdce1dddf
mov dword [esp + 0x4c], 0x1c1b2519
mov dword [esp + 0x50], 0x11d6ef1a
mov dword [esp + 0x54], 0xd6172b17
mov dword [esp + 0x58], 0x1e2a1c18
mov dword [esp + 0x5c], 0x20cc1fb
mov dword [esp + 0x60], 0xc5fb0009
mov dword [esp + 0x64], 0xe06000e
mov dword [esp + 0x68], 0x9cef6ce
mov dword [esp + 0x6c], 0x3d373d39
mov dword [esp + 0x70], 0xca333835
mov dword [esp + 0x74], 0x99fa
mov byte [esp + 0x78], 0
xor edi, edi
xor ebp, ebp
mov ecx, dword [esp + 0x90]
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebp + 0x3c]
mov esi, edi
and esi, 0x60
mov eax, ebp
xor eax, 0xe7bccf70
add eax, esi
mov esi, eax
and esi, edx
add eax, edx
add esi, esi
sub eax, esi
add al, 0xd0
mov byte [esp + ebp + 0x3c], al
inc ebp
add edi, 2
cmp ebp, 0x3d
jne 0x4099f0
add ecx, dword [esp + 4]
mov word [esp + 8], 0x2425
mov byte [esp + 0xa], 0xf2
mov word [esp + 0xb], 0
mov edx, 0xbff434ac
mov edi, 0x400bcbb0
nop
nop
nop
movzx esi, byte [esp + edx + 0x400bcb5c]
mov eax, edx
and eax, esi
add eax, eax
mov ebx, esi
sub ebx, eax
add ebx, edx
add ebx, 0xa3
sub eax, esi
add eax, edi
and eax, 0x6d
and ebx, 0x92
sub ebx, eax
add bl, 0x6e
mov byte [esp + edx + 0x400bcb5c], bl
inc edx
dec edi
cmp edx, 0xbff434b1
jne 0x409a40
movzx ebx, byte [esp + 8]
mov edx, ecx
test bl, bl
mov ebp, dword [esp + 0x38]
je 0x409aab
lea eax, [esp + 9]
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x409aa0
mov byte [edx], 0
movzx eax, byte [ebp + 0x60]
test al, al
je 0x409acb
lea esi, [ebp + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409ac0
mov byte [edx], 0
movzx eax, byte [esp + 0x3c]
test al, al
je 0x409aeb
lea esi, [esp + 0x3d]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409ae0
mov byte [edx], 0
mov eax, dword [esp + 0x94]
movzx ebx, byte [eax]
test bl, bl
je 0x409b0b
inc eax
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x409b00
mov dword [esp + 4], ecx
mov byte [edx], 0
movzx eax, byte [esp]
test al, al
je 0x409b2b
lea ecx, [esp + 1]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409b20
mov byte [edx], 0
movzx eax, byte [esp + 0x10]
test al, al
je 0x409b4b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409b40
mov byte [edx], 0
mov eax, dword [esp + 0x9c]
mov ecx, eax
mov ebx, eax
shr ecx, 2
mov esi, dword [esp + 0x98]
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and ebx, 0xfffffffc
add edx, ebx
add ebx, esi
mov ecx, eax
mov esi, eax
shr ecx, 1
and ecx, 1
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, esi
mov eax, esi
and eax, 2
add edx, eax
test cl, 1
je 0x409b9b
movzx eax, byte [ebx + eax]
mov byte [edx], al
inc edx
mov dword [esp + 0x3c], 0x8b918d93
mov byte [esp + 0x40], 0x80
mov dword [esp + 0x41], 0
mov dword [esp + 0x44], 0
lea ecx, [esp + 0x3c]
mov edi, 0xde
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [ecx]
mov ebx, edi
or ebx, esi
and esi, edi
lea eax, [esi + esi]
not eax
add eax, esi
and eax, ebx
mov bl, 0x5a
sub bl, al
mov byte [ecx], bl
inc ecx
dec edi
cmp edi, 0xd2
jne 0x409bd0
mov dword [esp + 0x10], 0x52537775
mov byte [esp + 0x14], 0x7c
mov dword [esp + 0x15], 0
mov word [esp + 0x19], 0
xor ecx, ecx
movzx eax, byte [esp + ecx + 0x10]
mov esi, ecx
xor esi, 0x30fd3515
mov edi, ecx
or edi, 0xa
and edi, esi
mov esi, ecx
xor esi, 0x4f02caea
lea esi, [esi + edi*2]
mov edi, esi
not edi
or edi, eax
or eax, esi
add edi, esi
mov ebx, 0xfe
sub ebx, edi
and ebx, eax
add bl, 0x6e
mov byte [esp + ecx + 0x10], bl
inc ecx
cmp ecx, 0xb
jne 0x409c10
movzx eax, byte [esp + 0x10]
test al, al
je 0x409c6b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409c60
mov byte [edx], 0
movzx eax, byte [ebp + 0x60]
test al, al
je 0x409c8b
lea ecx, [ebp + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409c80
mov byte [edx], 0
movzx eax, byte [esp + 0x3c]
test al, al
je 0x409cab
lea ecx, [esp + 0x3d]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409ca0
mov byte [edx], 0
sub edx, dword [esp + 4]
add dword [ebp + 0x80], edx
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10