Function at 0x409b80
Capabilities:
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, 0xfffffff8
sub esp, 0xb0
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x74], ecx
mov edx, dword [ecx + 0x60]
mov dword [esp + 0x78], 0x87809eab
mov dword [esp + 0x7c], 0x5a828395
mov dword [esp + 0x80], 0x9e8a8ca0
mov dword [esp + 0x84], 0x8b9f5946
mov dword [esp + 0x88], 0xebe59c88
mov dword [esp + 0x8c], 0xf3f4e4ed
mov dword [esp + 0x90], 0xf827fd37
mov dword [esp + 0x94], 0xe8ebe7ee
mov dword [esp + 0x98], 0x1e1c00f8
mov word [esp + 0x9c], 0x111e
mov dword [esp + 0x9e], 0
mov dword [esp + 0xa1], 0
mov ecx, dword [ebp + 8]
mov esi, 0x526bca2e
nop
nop
movzx eax, byte [esp + esi - 0x526bc9b6]
mov edi, esi
and edi, eax
add edi, edi
sub eax, edi
add eax, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0xbe
mov byte [esp + esi - 0x526bc9b6], al
cmp esi, 0x526bca5a
je 0x409c75
movzx eax, byte [esp + esi - 0x526bc9b5]
lea edi, [esi + 1]
and edi, eax
add edi, edi
sub eax, edi
add eax, esi
inc eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0xbe
mov byte [esp + esi - 0x526bc9b5], al
add esi, 2
jmp 0x409c20
mov dword [esp], 0x63121608
mov dword [esp + 4], 0
mov word [esp + 8], 0
mov dword [esp + 0x18], 0x18739dd9
mov eax, dword [esp + 0x18]
add al, 0x49
mov byte [esp], al
movzx eax, byte [esp + 1]
lea esi, [eax + eax]
and esi, 0xffffffa4
neg esi
add eax, esi
add eax, 0x18739dd2
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x49
mov byte [esp + 1], al
movzx eax, byte [esp + 2]
lea esi, [eax + eax]
and esi, 0xffffffa6
neg esi
add eax, esi
add eax, 0x18739dd3
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x49
mov byte [esp + 2], al
movzx eax, byte [esp + 3]
lea esi, [eax + eax]
and esi, 0xffffffa8
neg esi
add eax, esi
add eax, 0x18739dd4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x49
mov byte [esp + 3], al
movzx eax, byte [esp + 4]
lea esi, [eax + eax]
and esi, 0xffffffaa
neg esi
add eax, esi
add eax, 0x18739dd5
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x49
mov byte [esp + 4], al
movzx eax, byte [esp + 5]
lea esi, [eax + eax]
and esi, 0xffffffac
neg esi
add eax, esi
add eax, 0x18739dd6
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x49
mov byte [esp + 5], al
movzx eax, byte [esp + 6]
lea esi, [eax + eax]
and esi, 0xffffffae
neg esi
add eax, esi
add eax, 0x18739dd7
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x49
mov byte [esp + 6], al
movzx eax, byte [esp + 7]
lea esi, [eax + eax]
and esi, 0xffffffb0
neg esi
add eax, esi
add eax, 0x18739dd8
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x49
mov byte [esp + 7], al
movzx eax, byte [esp + 8]
lea esi, [eax + eax]
and esi, 0xffffffb2
neg esi
add eax, esi
add eax, 0x18739dd9
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x49
mov byte [esp + 8], al
movzx eax, byte [esp + 9]
lea esi, [eax + eax]
and esi, 0xffffffb4
neg esi
add eax, esi
add eax, 0x18739dda
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x49
mov byte [esp + 9], al
mov dword [esp + 0x18], 0xc6c4f8f9
mov dword [esp + 0x1c], 0xbabaf4f0
mov dword [esp + 0x20], 0xbf42bc89
mov dword [esp + 0x24], 0xb2b7be43
mov dword [esp + 0x28], 0x8ab74342
mov dword [esp + 0x2c], 0x5489efed
mov dword [esp + 0x30], 0x51af5956
mov dword [esp + 0x34], 0xa682945c
mov dword [esp + 0x38], 0x54595d53
mov dword [esp + 0x3c], 0x649f55a1
mov dword [esp + 0x40], 0x99d2b366
mov dword [esp + 0x44], 0xaa6b6f63
mov dword [esp + 0x48], 0x9a669c90
mov dword [esp + 0x4c], 0x8674d9bf
mov dword [esp + 0x50], 0xcda78871
mov dword [esp + 0x54], 0x827a888a
mov dword [esp + 0x58], 0x81caaac2
mov dword [esp + 0x5c], 0x857b7d81
mov dword [esp + 0x60], 0x567f8075
mov word [esp + 0x64], 0x113e
mov word [esp + 0x6e], 0
mov dword [esp + 0x6a], 0
mov dword [esp + 0x66], 0
mov esi, 0xcf6e07ba
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi + 0x3091f85e]
mov edi, esi
and edi, eax
add edi, edi
sub eax, edi
add eax, esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add al, 0xea
mov byte [esp + esi + 0x3091f85e], al
movzx eax, byte [esp + esi + 0x3091f85f]
lea edi, [esi + 1]
and edi, eax
add edi, edi
sub eax, edi
add eax, esi
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add al, 0xea
mov byte [esp + esi + 0x3091f85f], al
add esi, 2
cmp esi, 0xcf6e0812
jne 0x409e90
add ecx, edx
movzx eax, byte [esp + 0x18]
mov edx, ecx
test al, al
je 0x409f0b
lea esi, [esp + 0x19]
mov edx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409f00
mov byte [edx], 0
movzx eax, byte [ebx]
test al, al
je 0x409f2b
inc ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x409f20
mov dword [esp + 0x70], ecx
mov byte [edx], 0
movzx eax, byte [esp]
test al, al
je 0x409f4b
lea ecx, [esp + 1]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409f40
mov byte [edx], 0
movzx eax, byte [esp + 0x78]
test al, al
je 0x409f6b
lea ecx, [esp + 0x79]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409f60
mov byte [edx], 0
mov esi, dword [ebp + 0x14]
mov ecx, esi
shr ecx, 2
mov ebx, dword [ebp + 0x10]
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, esi
mov eax, esi
xor eax, 3
or esi, 0xfffffffc
and esi, eax
add esi, edx
mov eax, ecx
and eax, 0xfffffffc
add eax, ebx
shr ecx, 1
and ecx, 1
mov ebx, eax
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, dword [ebp + 0x14]
test cl, 1
je 0x409fb8
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x18], 0xfeffdbd9
mov dword [esp + 0x1c], 0xcace8486
mov dword [esp + 0x20], 0xbacfb8b8
mov dword [esp + 0x24], 0xb08dbd80
mov dword [esp + 0x28], 0x8584b0b5
mov dword [esp + 0x2c], 0xf1f3c8b5
mov word [esp + 0x30], 0xf3f1
mov byte [esp + 0x32], 2
mov dword [esp + 0x33], 0
mov dword [esp + 0x37], 0
mov dword [esp + 0x3a], 0
mov ecx, 0x17cff15b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0x17cff143]
lea esi, [ecx - 1]
and esi, eax
add esi, esi
sub eax, esi
add eax, ecx
dec eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
add al, 0x8a
mov byte [esp + ecx - 0x17cff143], al
movzx eax, byte [esp + ecx - 0x17cff142]
mov esi, ecx
and esi, eax
add esi, esi
sub eax, esi
add eax, ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
add al, 0x8a
mov byte [esp + ecx - 0x17cff142], al
add ecx, 2
cmp ecx, 0x17cff181
jne 0x40a020
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x18]
test al, al
je 0x40a09b
lea ecx, [esp + 0x19]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a090
mov byte [edx], 0
sub edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
add dword [eax + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10