Function at 0x409510
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push eax
push ecx
push edx
push ebx
push esp
push ebp
push esi
push edi
push ebp
mov ebp, esp
sub esp, 0x60
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0x10], 0xb
mov edi, 3
and dword [ebp - 0x18], 0
and dword [ebp - 0x3c], 0
and dword [ebp - 0x40], 0
jmp 0x409702
add dword [ebp - 0x3c], 0x3d32
jmp 0x409552
mov dword [ebp - 0x20], 0x428665
jmp 0x40955b
mov dword [ebp - 0x48], 0x1b5ba58a
jmp 0x40958f
mov eax, esi
add eax, 3
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x3c]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0x48]
xor edx, ecx
mov byte [eax], dl
inc dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
cmp dword [ebp - 0x40], eax
ja 0x409563
mov dword [ebp - 0x1c], 0x44c000
mov dword [ebp - 0x24], 0x442465
jmp 0x409598
mov dword [ebp - 0x40], 0x4708
jmp 0x4095ff
mov dword [ebp - 0x28], 0x47f000
mov eax, dword [ebp - 0x10]
add eax, esi
sub eax, 0xb
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x19df0
jae 0x4095c7
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
mov cl, byte [ecx + eax]
mov byte [edx + eax], cl
inc dword [ebp - 4]
jmp 0x4095aa
mov eax, dword [ebp - 0x10]
mov ebx, eax
add ebx, eax
sub ebx, 0x16
jmp 0x4095e0
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
mov dl, byte [edx + ebx]
mov byte [eax + ebx], dl
inc ebx
cmp ebx, 0x6624
jb 0x4095d3
mov dword [ebp - 0xc], 0x449265
mov dword [ebp - 0x2c], 0x10000000
mov dword [ebp - 0x4c], 0x34000
jmp 0x40960b
add dword [ebp - 0x40], 0x1f2f8
jmp 0x409549
mov dword [ebp - 0x30], 0x1000
mov eax, dword [ebp - 0x10]
sub eax, 0xb
mov dword [ebp - 8], eax
jmp 0x4096d1
mov eax, dword [ebp - 8]
mov edx, edi
add edx, dword [ebp - 0x10]
sub edx, 6
add eax, edx
add eax, dword [ebp - 0xc]
mov dword [ebp - 0x54], eax
mov ax, word [eax]
mov word [ebp - 0x50], ax
jmp 0x409647
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x30]
mov dword [ebp - 0x14], eax
jmp 0x409620
movzx edx, word [ebp - 0x50]
lea ecx, [esi + edi + 1]
shl edx, cl
mov word [ebp - 0x4e], dx
movzx edx, word [ebp - 0x4e]
lea ecx, [esi + edi + 1]
sar edx, cl
mov word [ebp - 0x4e], dx
movzx eax, word [ebp - 0x50]
mov edx, dword [ebp - 0x18]
add edx, edi
sub edx, 3
cmp eax, edx
je 0x409749
movzx edx, word [ebp - 0x50]
mov ecx, esi
add ecx, 0xc
sar edx, cl
mov word [ebp - 0x56], dx
cmp dword [ebp - 8], esi
je 0x40969d
mov eax, dword [ebp - 0x10]
sub eax, 0xb
movzx edx, word [ebp - 0x4e]
cmp eax, edx
je 0x409749
mov eax, dword [ebp - 0x14]
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x5c], eax
movzx eax, word [ebp - 0x56]
mov edx, edi
add edx, dword [ebp - 0x18]
cmp eax, edx
jne 0x4096c9
movzx eax, word [ebp - 0x4e]
mov edx, dword [ebp - 0xc]
add eax, dword [edx]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x60], eax
mov edx, dword [ebp - 0x5c]
add edx, dword [eax]
mov dword [eax], edx
mov eax, edi
add eax, esi
dec eax
add dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
cmp dword [ebp - 8], eax
jb 0x40963c
jmp 0x409749
mov eax, esi
add eax, 0x1388
mov dword [ebp - 0x38], eax
mov eax, edi
add eax, 0x445
mov dword [ebp - 0x34], eax
lea eax, [esi + esi + 0xa4]
add dword [ebp - 0x34], eax
jmp 0x409756
mov dword [ebp - 0x3c], 0x424533
jmp 0x409540
cmp dword [ebp - 0xc], 0x44ba49
jae 0x4096e2
jmp 0x4095f6
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
add edx, eax
mov ecx, dword [ebp - 0x10]
add ecx, esi
sub ecx, 3
add edx, ecx
add eax, edx
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x18]
add ecx, 0xc
mov eax, dword [ebp - 0xc]
mov edx, dword [eax + 4]
add edx, eax
mov dword [ebp - 0xc], edx
jmp 0x40970e
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x10]
sub ecx, 8
add ecx, dword [ebp - 0x34]
mul ecx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x38], eax
jmp 0x40971c