Function at 0x409a60
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, 0x84
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov edi, dword [ecx + 0x80]
mov dword [esp + 0x18], 0xede8ea01
mov dword [esp + 0x1c], 0x2eeaede3
mov dword [esp + 0x20], 0xeae2dc08
mov dword [esp + 0x24], 0xe1f1371e
mov dword [esp + 0x28], 0x110f0ce0
mov dword [esp + 0x2c], 0x191c141b
mov dword [esp + 0x30], 0x10d12bdd
mov dword [esp + 0x34], 0x1d1906
mov dword [esp + 0x38], 0xaaa4a810
mov word [esp + 0x3c], 0xbfa6
mov dword [esp + 0x3e], 0
mov word [esp + 0x42], 0
mov ebp, 0xef
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebp - 0xd7]
mov ebx, edx
and ebx, ebp
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
add cl, dl
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, ebp
add al, 0x55
mov byte [esp + ebp - 0xd7], al
inc ebp
cmp ebp, 0x11b
jne 0x409af0
mov dword [esp + 0x10], 0x23383cc2
mov word [esp + 0x14], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x10]
mov ecx, 0xed984fb7
sub ecx, eax
or ecx, edx
mov ebx, 0xb7
sub ebx, eax
and ebx, edx
not ecx
or ecx, ebx
mov edx, ecx
xor edx, 0x5c067168
or ecx, 0xa3f98e97
and edx, ecx
add edx, ecx
mov ecx, edx
and ecx, 1
xor edx, 1
lea ecx, [edx + ecx*2]
mov byte [esp + eax + 0x10], cl
mov ecx, eax
not ecx
or ecx, 1
add ecx, eax
inc ecx
mov ebx, ecx
and ebx, 2
mov edx, ecx
or ecx, 2
imul ecx, ebx
xor ebx, 2
and edx, 0xfffffffd
imul edx, ebx
xor eax, 1
add eax, ecx
add eax, edx
cmp eax, 6
jb 0x409b50
mov dword [esp + 0x44], 0x6431cbc5
mov dword [esp + 0x48], 0x7973617a
mov dword [esp + 0x4c], 0x72163c64
mov dword [esp + 0x50], 0x74717577
mov dword [esp + 0x54], 0x747b6d79
mov dword [esp + 0x58], 0x1be570a
mov dword [esp + 0x5c], 0x4e0f0b0f
mov dword [esp + 0x60], 0x761a7408
mov dword [esp + 0x64], 0x7204b15b
mov dword [esp + 0x68], 0xad4b1019
mov dword [esp + 0x6c], 0x161e1016
mov dword [esp + 0x70], 0x19a64ea6
mov dword [esp + 0x74], 0x151f1519
mov dword [esp + 0x78], 0x7a23285d
mov word [esp + 0x7c], 0xb99a
mov dword [esp + 0x7e], 0
mov word [esp + 0x82], 0
mov eax, 0x7c9729ac
mov ecx, 0x368d653
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x7c972968]
mov ebx, edx
xor ebx, eax
or ebx, ecx
add bl, bl
add bl, dl
movzx edx, bl
add edx, eax
add dl, 0xa6
mov byte [esp + eax - 0x7c972968], dl
inc eax
dec ecx
cmp eax, 0x7c9729ec
jne 0x409c50
add dword [esp], edi
mov word [esp + 8], 0xd4d5
mov byte [esp + 0xa], 0x3e
mov word [esp + 0xb], 0
mov byte [esp + 0xd], 0
mov eax, 0x1a65344a
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0x1a653442]
lea ecx, [eax - 0x1a653400]
and ecx, edi
mov ebx, ecx
and ebx, 2
mov ebp, ecx
or ebp, 0xfffffffd
inc ebp
mov edx, ecx
and edx, 0x5d
imul edx, ebp
or ecx, 2
imul ecx, ebx
add edx, edi
sub edx, ecx
add edx, eax
mov ecx, edx
and ecx, 0x3d
xor edx, 0x3d
lea ecx, [edx + ecx*2]
add cl, 0x51
mov byte [esp + eax - 0x1a653442], cl
inc eax
cmp eax, 0x1a653450
jne 0x409ca0
movzx ecx, byte [esp + 8]
mov eax, dword [esp]
test cl, cl
je 0x409d0b
lea edi, [esp + 9]
mov eax, dword [esp]
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409d00
mov byte [eax], 0
mov edx, dword [esp + 4]
movzx ecx, byte [edx + 0x60]
test cl, cl
je 0x409d2b
lea edi, [edx + 0x61]
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409d20
mov byte [eax], 0
movzx ecx, byte [esp + 0x44]
test cl, cl
je 0x409d4b
lea edi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409d40
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x409d6b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409d60
mov byte [eax], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x409d8b
lea esi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409d80
mov byte [eax], 0
movzx ecx, byte [esp + 0x18]
test cl, cl
je 0x409dab
lea esi, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409da0
mov byte [eax], 0
mov esi, dword [esp + 0xa4]
mov ecx, esi
shr ecx, 2
mov ebp, dword [esp + 0xa0]
mov edx, ebp
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, esi
mov ebx, esi
and ebx, 0xfffffffc
lea esi, [eax + ebx]
add ebx, ebp
mov ecx, edx
mov ebp, edx
shr ecx, 1
and ecx, 1
mov edx, ebx
mov edi, esi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, ebp
test cl, 1
je 0x409e03
mov ecx, dword [esp + 0xa4]
and ecx, 2
movzx edx, byte [ebx + ecx]
mov byte [esi + ecx], dl
mov dword [esp + 0x44], 0xc9c7cbc5
mov byte [esp + 0x48], 0x2c
mov dword [esp + 0x49], 0
mov ecx, 0x1a3b774c
nop
nop
nop
movzx edx, byte [esp + ecx - 0x1a3b7708]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x84
mov byte [esp + ecx - 0x1a3b7708], dl
inc ecx
cmp ecx, 0x1a3b7755
jne 0x409e20
mov dword [esp + 0x18], 0x6073b25
mov byte [esp + 0x1c], 0x3c
mov dword [esp + 0x1d], 0
mov word [esp + 0x21], 0
lea ecx, [esp + 0x18]
mov esi, 0xdfcd84b
nop
nop
nop
movzx edi, byte [ecx]
xor edi, esi
mov edx, edi
not edx
and edi, 0x85
and edx, 0x7a
sub edx, edi
inc dl
mov byte [ecx], dl
inc ecx
dec esi
cmp esi, 0xdfcd840
jne 0x409e70
add eax, dword [esp + 0xa4]
movzx ecx, byte [esp + 0x18]
test cl, cl
je 0x409ebd
lea esi, [esp + 0x19]
mov edx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409eb0
jmp 0x409ec1
mov edx, dword [esp + 4]
mov byte [eax], 0
movzx ecx, byte [edx + 0x60]
test cl, cl
je 0x409edb
lea esi, [edx + 0x61]
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409ed0
mov byte [eax], 0
movzx ecx, byte [esp + 0x44]
test cl, cl
je 0x409efb
lea esi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409ef0
mov byte [eax], 0
sub eax, dword [esp]
add dword [edx + 0x80], eax
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret 0x10