Function at 0x4098f0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov eax, dword [ebp + 8]
add eax, dword [ecx + 0x60]
mov dword [esp + 0x70], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov word [esp + 0x70], 0x1b11
mov byte [esp + 0x72], 0x20
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x20]
cmp edx, 0x1f
ja 0x4099b6
nop
nop
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x20]
movzx edi, byte [esp + edx + 0x70]
lea ebx, [esi + 0xfb]
and ebx, edi
mov edx, 0xdb577204
sub edx, esi
or edx, edi
not edx
add edx, edi
sub edx, ebx
mov esi, edx
xor esi, 0x22
and edx, 0x22
lea edx, [esi + edx*2]
inc dl
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x70], dl
inc dword [esp + 0x20]
mov edx, dword [esp + 0x20]
cmp edx, 0x20
jb 0x409970
mov dword [esp + 0x10], 0x5e5c5832
mov word [esp + 0x14], 0x695e
mov dword [esp + 0x16], 0
mov dword [esp + 0x1a], 0
mov word [esp + 0x1e], 0
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x20]
cmp edx, 0xf
ja 0x409a34
nop
nop
nop
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
movzx edi, byte [esp + esi + 0x10]
lea esi, [edx + edi]
add esi, 0x43667af2
add edx, 0x43667af2
and edx, edi
add edx, edx
mov edi, esi
not edi
and edi, edx
not edx
and edx, esi
sub edx, edi
add dl, 0x62
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x10], dl
inc dword [esp + 0x20]
mov edx, dword [esp + 0x20]
cmp edx, 0x10
jb 0x4099f0
mov dword [esp + 0x20], 0x9c9aa699
mov dword [esp + 0x24], 0x9898aab2
mov dword [esp + 0x28], 0x97606aa9
mov dword [esp + 0x2c], 0x906f9063
mov dword [esp + 0x30], 0xb88f7b64
mov dword [esp + 0x34], 0x7ea9d7d5
mov dword [esp + 0x38], 0x7d877570
mov dword [esp + 0x3c], 0x7ca0ba76
mov dword [esp + 0x40], 0x8e898973
mov dword [esp + 0x44], 0x8e878981
mov dword [esp + 0x48], 0x75305b80
mov dword [esp + 0x4c], 0x488b8783
mov dword [esp + 0x50], 0x689c6a72
mov dword [esp + 0x54], 0x6c922d47
mov dword [esp + 0x58], 0x214f6691
mov byte [esp + 0x5c], 2
mov dword [esp + 0x5d], 0
mov dword [esp + 0x61], 0
mov dword [esp + 0x65], 0
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xc]
cmp edx, 0x48
ja 0x409b32
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
movzx edi, byte [esp + esi + 0x20]
lea ebx, [edx - 0x2bb3ada1]
lea esi, [edx + edi]
add esi, 0xd44c525f
and ebx, edi
add edx, 0x5f
and edx, edi
add edx, ebx
mov edi, esi
not edi
and edi, edx
not edx
and edx, esi
sub edx, edi
mov esi, edx
or esi, 0x66
and edx, 0x66
add edx, esi
inc dl
mov esi, dword [esp + 0xc]
mov byte [esp + esi + 0x20], dl
inc dword [esp + 0xc]
mov edx, dword [esp + 0xc]
cmp edx, 0x49
jb 0x409ae0
mov esi, dword [ebp + 0xc]
movzx ebx, byte [esp + 0x20]
mov edx, eax
test bl, bl
je 0x409b5b
lea edi, [esp + 0x21]
mov edx, eax
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 0x409b50
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x409b7b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409b70
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx ebx, byte [esp + 0x10]
test bl, bl
je 0x409b9b
lea edi, [esp + 0x11]
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409b90
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x409bbb
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409bb0
mov byte [edx], 0
movzx ebx, byte [esp + 0x70]
test bl, bl
je 0x409bdb
lea esi, [esp + 0x71]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409bd0
mov byte [edx], 0
sub edx, eax
add dword [ecx + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc