Function at 0x4095f0
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 + 0x98]
mov dword [esp + 0x40], ecx
mov edx, dword [ecx + 0x80]
mov dword [esp + 0x10], 0x65a09ec9
mov dword [esp + 0x14], 0x1a665d57
mov dword [esp + 0x18], 0x5e666c40
mov dword [esp + 0x1c], 0x69591b22
mov dword [esp + 0x20], 0x495b5c68
mov dword [esp + 0x24], 0x714c444f
mov dword [esp + 0x28], 0x78097f35
mov dword [esp + 0x2c], 0x484d414a
mov dword [esp + 0x30], 0xdee4e078
mov dword [esp + 0x34], 0xd3da
mov byte [esp + 0x38], 0
xor edi, edi
xor ebp, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edi
and ebx, 0x7a
mov eax, ebp
xor eax, 0x7d
add eax, ebx
xor al, byte [esp + ebp + 0x10]
add al, 0x8f
mov byte [esp + ebp + 0x10], al
inc ebp
add edi, 2
cmp ebp, 0x29
jne 0x409670
mov dword [esp + 8], 0xc3c8cce2
mov byte [esp + 0xc], 0
xor edi, edi
nop
nop
movzx ebp, byte [esp + edi + 8]
mov ebx, edi
or ebx, ebp
or ebx, 0xd0
xor ebp, edi
xor ebp, 0xc5585f2f
and ebp, ebx
lea eax, [ebp*2]
not eax
add eax, ebp
and eax, ebx
add al, 0xf0
mov byte [esp + edi + 8], al
inc edi
cmp edi, 5
jne 0x4096a0
mov dword [esp + 0x44], 0xa08b4543
mov dword [esp + 0x48], 0xbbb5a7be
mov dword [esp + 0x4c], 0xb29278a0
mov dword [esp + 0x50], 0xa8ababad
mov dword [esp + 0x54], 0x90b5abb7
mov dword [esp + 0x58], 0x8342598e
mov dword [esp + 0x5c], 0x46899595
mov dword [esp + 0x60], 0x8e9e888c
mov dword [esp + 0x64], 0x92804f51
mov dword [esp + 0x68], 0x574d949f
mov dword [esp + 0x6c], 0x9e9a9c92
mov dword [esp + 0x70], 0x9b5a465a
mov dword [esp + 0x74], 0xef999397
mov dword [esp + 0x78], 0x3ae5ece3
mov word [esp + 0x7c], 0x726
mov dword [esp + 0x7e], 0
mov word [esp + 0x82], 0
mov edi, 0x16e1e90d
mov ecx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi - 0x16e1e8c9]
xor ebx, edi
mov ebp, ebx
and ebp, 0xbc
mov esi, ebx
and esi, 2
mov eax, esi
xor eax, 2
imul eax, ebp
or ebp, 2
imul ebp, esi
xor ebx, 0xbe
add ebx, eax
add ebx, ebp
inc bl
mov byte [esp + edi - 0x16e1e8c9], bl
inc edi
cmp edi, 0x16e1e94d
jne 0x409770
add ecx, edx
mov word [esp], 0x3435
mov byte [esp + 2], 0xe
mov word [esp + 3], 0
mov byte [esp + 5], 0
mov edx, 0x633a8f7
nop
movzx eax, byte [esp + edx - 0x633a8f7]
lea esi, [edx - 0x633a835]
and esi, eax
add esi, esi
sub eax, esi
add eax, edx
mov esi, eax
and esi, 1
xor eax, 1
lea eax, [eax + esi*2]
mov byte [esp + edx - 0x633a8f7], al
inc edx
cmp edx, 0x633a8fd
jne 0x4097d0
movzx ebx, byte [esp]
mov edx, ecx
test bl, bl
mov ebp, dword [esp + 0x40]
je 0x40982b
lea edi, [esp + 1]
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409820
mov byte [edx], 0
movzx ebx, byte [ebp + 0x60]
test bl, bl
mov eax, dword [esp + 0x9c]
je 0x40984b
lea edi, [ebp + 0x61]
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409840
mov byte [edx], 0
movzx ebx, byte [esp + 0x44]
test bl, bl
je 0x40986b
lea edi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409860
mov byte [edx], 0
movzx ebx, byte [eax]
test bl, bl
mov dword [esp + 0x3c], ecx
je 0x40988b
inc eax
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x409880
mov byte [edx], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x4098ab
lea edi, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x4098a0
mov byte [edx], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x4098cb
lea edi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x4098c0
mov byte [edx], 0
mov ebx, dword [esp + 0xa4]
mov ecx, ebx
shr ecx, 2
mov esi, dword [esp + 0xa0]
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 0x409919
movzx eax, byte [ebx + eax]
mov byte [edx], al
inc edx
mov dword [esp + 0x44], 0x11131715
mov byte [esp + 0x48], 0x1c
mov dword [esp + 0x49], 0
mov dword [esp + 0x4c], 0
lea ecx, [esp + 0x44]
mov edi, 0xc5
nop
movzx eax, byte [ecx]
lea esi, [edi - 0x351a2600]
or esi, eax
and eax, edi
not esi
or esi, eax
mov eax, esi
and eax, 0x5d
xor esi, 0xdd
lea eax, [esi + eax*2]
inc al
mov byte [ecx], al
inc ecx
dec edi
cmp edi, 0xb9
jne 0x409940
mov dword [esp + 0x10], 0xd6d1fdf3
mov byte [esp + 0x14], 0xe0
mov dword [esp + 0x15], 0
mov dword [esp + 0x18], 0
mov ecx, 0x95e82329
nop
movzx ebx, byte [esp + ecx + 0x6a17dce7]
xor ebx, ecx
mov edi, 2
sub edi, ebx
sub edi, ebx
not edi
and edi, 2
mov esi, ebx
or esi, 0xfe
and ebx, 0xfe
mov eax, 0xcd
sub eax, ebx
and eax, esi
not eax
add eax, edi
mov byte [esp + ecx + 0x6a17dce7], al
inc ecx
cmp ecx, 0x95e82335
jne 0x409990
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x4099eb
lea edi, [esp + 0x11]
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x4099e0
mov byte [edx], 0
movzx ecx, byte [ebp + 0x60]
test cl, cl
je 0x409a0b
lea edi, [ebp + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409a00
mov byte [edx], 0
movzx ecx, byte [esp + 0x44]
test cl, cl
je 0x409a2b
lea edi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x409a20
mov byte [edx], 0
sub edx, dword [esp + 0x3c]
add dword [ebp + 0x80], edx
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret 0x10