Function at 0x409510
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push eax
push ecx
nop
push edx
nop
push ebx
push esp
push ebp
push esi
push edi
push ebp
mov ebp, esp
sub esp, 0x64
mov esi, 0xe
mov dword [ebp - 8], 0xd
mov eax, esi
add eax, dword [ebp - 8]
sub eax, 0x1b
mov dword [ebp - 0xc], eax
jmp 0x409656
mov dword [ebp - 0x34], 5
mov ebx, dword [ebp - 0x34]
jmp 0x409685
add ebx, 0x26f7
add dword [ebp - 0x18], 0x548e
add dword [ebp - 0x18], 0x50b2
mov eax, dword [ebp - 8]
add eax, esi
sub eax, 0x1b
mov dword [ebp - 0x10], eax
jmp 0x409742
add ebx, 0x425b97
mov dword [ebp - 0x2c], 0x450000
mov dword [ebp - 0x38], 0x428693
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 8]
sub edx, 0xc
mov edi, eax
sub edi, edx
jmp 0x4095c4
mov al, byte [ebx + edi]
mov byte [ebp - 1], al
movzx edx, byte [ebp - 1]
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x10]
mov edx, eax
shr edx, 1
add ecx, edx
mov edx, ecx
and edx, 0xff
mov ecx, dword [ebp - 0x64]
xor ecx, edx
mov edx, ecx
mov byte [ebp - 1], dl
mov al, byte [ebp - 1]
mov byte [ebx + edi], al
dec edi
mov eax, esi
add eax, esi
sub eax, 0x1a
cmp edi, eax
ja 0x409592
inc dword [ebp - 0x10]
mov eax, esi
sub eax, 0xb
cmp eax, dword [ebp - 0x10]
ja 0x409575
mov dword [ebp - 0x3c], 0x489000
mov dword [ebp - 0x40], 0x445693
mov eax, esi
add eax, esi
sub eax, 0x1c
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x38]
mov al, byte [edx + eax]
mov byte [ebp - 1], al
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c]
mov cl, byte [ebp - 1]
mov byte [edx + eax], cl
inc dword [ebp - 0x1c]
mov eax, 0x1cfc0
cmp eax, dword [ebp - 0x1c]
ja 0x4095f4
mov eax, dword [ebp - 8]
sub eax, 0xd
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x40]
mov al, byte [edx + eax]
mov byte [ebp - 1], al
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x3c]
mov cl, byte [ebp - 1]
mov byte [edx + eax], cl
inc dword [ebp - 0x20]
cmp dword [ebp - 0x20], 0x7070
jb 0x409622
mov dword [ebp - 0x14], 0x44ce93
mov dword [ebp - 0x44], 0x10000000
jmp 0x409662
mov dword [ebp - 0x18], 0x1d6c0
jmp 0x40953c
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 8]
add eax, esi
sub eax, 0x1b
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x60], 0x3a000
mov dword [ebp - 0x4c], 0x1000
jmp 0x409691
mov dword [ebp - 0xc], 0x55ae71c6
jmp 0x40954b
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x4c]
mov dword [ebp - 0x30], eax
mov eax, esi
add eax, dword [ebp - 8]
sub eax, 0x13
add eax, dword [ebp - 0x14]
add eax, dword [ebp - 0x24]
mov dword [ebp - 0x48], eax
mov ax, word [eax]
mov word [ebp - 0x28], ax
jmp 0x40974a
movzx edx, word [ebp - 0x28]
mov ecx, esi
sub ecx, 2
sar edx, cl
mov word [ebp - 0x4e], dx
movzx edx, word [ebp - 0x28]
mov ecx, dword [ebp - 8]
sub ecx, 9
shl edx, cl
mov word [ebp - 0x26], dx
movzx edx, word [ebp - 0x26]
mov ecx, dword [ebp - 8]
sub ecx, 9
sar edx, cl
mov word [ebp - 0x26], dx
mov eax, dword [ebp - 8]
sub eax, 0xd
cmp dword [ebp - 0x24], eax
je 0x4096fe
mov eax, esi
sub eax, 0xe
movzx edx, word [ebp - 0x26]
cmp eax, edx
je 0x409778
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x44]
mov dword [ebp - 0x5c], eax
movzx eax, word [ebp - 0x4e]
mov edx, esi
sub edx, 0xb
cmp eax, edx
jne 0x409737
movzx eax, word [ebp - 0x26]
add eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x30]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 8]
mov ecx, eax
mov eax, edx
add eax, edx
mov edx, eax
sub edx, 0x1a
mov eax, dword [ebp - 0x5c]
add eax, dword [ecx]
mov dword [ecx + edx*4], eax
mov eax, dword [ebp - 8]
invalid
invalid