Function at 0x4098b0
Capabilities:
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 dword [esp + 0x7c], ecx
mov ecx, dword [ecx + 0x60]
mov dword [esp + 0x80], 0x37383ee3
mov dword [esp + 0x84], 0xc20a3b05
mov dword [esp + 0x88], 0x3e020c28
mov dword [esp + 0x8c], 0x33ff1d6
mov dword [esp + 0x90], 0x33353c00
mov dword [esp + 0x94], 0x1b14340d
mov dword [esp + 0x98], 0x10d71dd7
mov dword [esp + 0x9c], 0x2023172e
mov dword [esp + 0xa0], 0xfefcf810
mov word [esp + 0xa4], 0x89fe
mov dword [esp + 0xaa], 0
mov dword [esp + 0xa6], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x2d
ja 0x4099b1
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x80]
lea esi, [eax + edx]
add esi, 0x253bc91a
add eax, 0x253bc91a
and eax, edx
add eax, eax
sub esi, eax
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x20]
mov edx, eax
xor edx, 0x49
and eax, 0x49
lea eax, [edx + eax*2]
inc al
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x80], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x2e
jb 0x409960
mov dword [esp + 8], 0x6b1c1832
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov byte [esp + 0x14], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x409a2a
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
lea esi, [eax + 0xa5f8cd2]
mov edi, edx
not edi
or edi, esi
and esi, edx
add esi, edi
neg esi
add eax, esi
add eax, 0xa5f8cd1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov edx, eax
or edx, 0x41
and eax, 0x41
add eax, edx
inc al
mov edx, dword [esp]
mov byte [esp + edx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x4099e0
mov edi, dword [ebp + 8]
mov dword [esp + 0x20], 0xc6c00c0d
mov dword [esp + 0x24], 0xc2c2303c
mov dword [esp + 0x28], 0xcffac03d
mov dword [esp + 0x2c], 0xcac7cec3
mov dword [esp + 0x30], 0x2f7c3c2
mov dword [esp + 0x34], 0xf8155f59
mov dword [esp + 0x38], 0xf5ffcdf6
mov dword [esp + 0x3c], 0xf61a30c8
mov dword [esp + 0x40], 0xd0edd1d3
mov dword [esp + 0x44], 0xe8efd1ed
mov dword [esp + 0x48], 0xed2a13e6
mov dword [esp + 0x4c], 0x22e3dfe3
mov dword [esp + 0x50], 0x12261014
mov dword [esp + 0x54], 0x1618d5ef
mov dword [esp + 0x58], 0xd9e71c15
mov dword [esp + 0x5c], 0x1a12141a
mov dword [esp + 0x60], 0x5c2fac2
mov dword [esp + 0x64], 0x903090d
mov dword [esp + 0x68], 0xf60f0409
mov dword [esp + 0x6c], 0xadce
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x4f
ja 0x409b1e
nop
nop
mov eax, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x20]
lea esi, [eax + edx]
add esi, 0x14cd3ed0
add eax, 0x14cd3ed0
and eax, edx
add eax, eax
sub esi, eax
mov dword [esp], esi
mov eax, dword [esp]
add al, 0x50
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x50
jb 0x409ae0
mov eax, dword [ebp + 0xc]
add edi, ecx
movzx ecx, byte [esp + 0x20]
mov edx, edi
test cl, cl
je 0x409b4b
lea esi, [esp + 0x21]
mov edx, edi
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 0x409b40
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x409b6b
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 0x409b60
mov byte [edx], 0
movzx eax, byte [esp + 8]
test al, al
je 0x409b8b
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 0x409b80
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx eax, byte [esp + 0x80]
test al, al
mov dword [esp + 0x1c], edi
je 0x409bbb
lea ecx, [esp + 0x81]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409bb0
mov byte [edx], 0
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
xor eax, 3
mov ecx, esi
mov esi, ebx
or esi, 0xfffffffc
and esi, eax
add esi, edx
mov eax, ebx
and eax, 0xfffffffc
add eax, ecx
mov ecx, ebx
not ecx
or ecx, 3
add ecx, ebx
inc ecx
mov dword [esp + 0x74], ecx
shr ecx, 1
mov dword [esp + 0x78], eax
mov edi, esi
mov ebx, dword [esp + 0x78]
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [esp + 0x74]
test cl, 1
je 0x409c16
and ecx, 0xfffffffe
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x20], 0x44471b21
mov dword [esp + 0x24], 0x40447270
mov dword [esp + 0x28], 0x70477672
mov dword [esp + 0x2c], 0x6a95698a
mov dword [esp + 0x30], 0x91926e6d
mov dword [esp + 0x34], 0x53b5e6d
mov word [esp + 0x38], 0x339
mov byte [esp + 0x3a], 8
mov dword [esp + 0x3b], 0
mov word [esp + 0x3f], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x20
ja 0x409cd4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x20]
lea esi, [eax - 0x43e2387d]
lea edi, [eax + 0x83]
mov ebx, edi
and ebx, esi
and ebx, ecx
xor edi, esi
and edi, ecx
add eax, ecx
add eax, 0xbc1dc783
lea ecx, [edi + ebx*2]
sub eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x80]
add al, 0x6b
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x21
jb 0x409c80
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x20]
test al, al
je 0x409cfd
lea ecx, [esp + 0x21]
mov esi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409cf0
jmp 0x409d01
mov esi, dword [esp + 0x1c]
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