Function at 0xff905f
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push edi
push ebx
sub esp, 0x60
mov eax, dword [ebp + 0x10]
mov edx, eax
mov ebx, 0x50
mov eax, 0
mov ecx, edx
and ecx, 1
test ecx, ecx
je 0xff9087
mov byte [edx], al
add edx, 1
sub ebx, 1
mov ecx, edx
and ecx, 2
test ecx, ecx
je 0xff9099
mov word [edx], ax
add edx, 2
sub ebx, 2
mov ecx, ebx
shr ecx, 2
mov edi, edx
rep stosd dword es:[edi], eax
mov edx, edi
mov ecx, ebx
and ecx, 2
test ecx, ecx
je 0xff90b3
mov word [edx], ax
add edx, 2
mov ecx, ebx
and ecx, 1
test ecx, ecx
je 0xff90c1
mov byte [edx], al
add edx, 1
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xffffffff
mov dword [eax + 4], 0xffffffff
mov word [eax + 8], 0xffff
lea eax, [ebp - 0x60]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov word [ebp - 0xc], 0
jmp 0xff9245
mov eax, dword [ebp - 0x14]
movzx eax, word [eax]
mov word [ebp - 0xa], ax
add dword [ebp - 0x14], 2
movsx eax, word [ebp - 0xa]
imul eax, eax, 0x199a
sar eax, 0xf
mov word [ebp - 0xe], ax
movzx eax, word [ebp - 0xa]
movzx edx, word [ebp - 0xe]
lea ecx, [edx*4]
movzx edx, word [ebp - 0xe]
add edx, ecx
sub ax, dx
mov word [ebp - 0x42], ax
movsx eax, word [ebp - 0xa]
add eax, eax
add eax, dword [ebp + 0xc]
movzx eax, word [eax]
test ax, ax
jle 0xff9165
movsx eax, word [ebp - 0xa]
add eax, eax
add eax, dword [ebp + 0x10]
movsx edx, word [ebp - 0xa]
add edx, edx
add edx, dword [ebp + 0x10]
movzx edx, word [edx]
add dx, 0x1000
mov word [eax], dx
mov eax, dword [ebp - 0x3c]
mov word [eax], 0x2000
add dword [ebp - 0x3c], 2
jmp 0xff9199
movsx eax, word [ebp - 0xa]
add eax, eax
add eax, dword [ebp + 0x10]
movsx edx, word [ebp - 0xa]
add edx, edx
add edx, dword [ebp + 0x10]
movzx edx, word [edx]
sub dx, 0x1000
mov word [eax], dx
mov eax, dword [ebp - 0x3c]
mov word [eax], 0xe000
add dword [ebp - 0x3c], 2
movzx eax, word [ebp - 0xe]
add eax, 8
mov word [ebp - 0xe], ax
movsx eax, word [ebp - 0x42]
add eax, eax
add eax, dword [ebp + 0x1c]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
movzx eax, word [eax]
mov word [ebp - 0x44], ax
cmp word [ebp - 0x44], 0
jns 0xff91c2
mov eax, dword [ebp - 0x18]
movzx edx, word [ebp - 0xe]
mov word [eax], dx
jmp 0xff9240
movzx eax, word [ebp - 0x44]
movzx edx, word [ebp - 0xe]
xor eax, edx
cwde
and eax, 8
test eax, eax
jne 0xff9206
movzx eax, word [ebp - 0x44]
cmp ax, word [ebp - 0xe]
jg 0xff91ed
mov eax, dword [ebp - 0x18]
lea edx, [eax + 0xa]
movzx eax, word [ebp - 0xe]
mov word [edx], ax
jmp 0xff9240
mov eax, dword [ebp - 0x18]
lea edx, [eax + 0xa]
movzx eax, word [ebp - 0x44]
mov word [edx], ax
mov eax, dword [ebp - 0x18]
movzx edx, word [ebp - 0xe]
mov word [eax], dx
jmp 0xff9240
movsx eax, word [ebp - 0x44]
mov edx, eax
and edx, 7
movsx eax, word [ebp - 0xe]
and eax, 7
cmp edx, eax
jg 0xff9233
mov eax, dword [ebp - 0x18]
lea edx, [eax + 0xa]
movzx eax, word [ebp - 0x44]
mov word [edx], ax
mov eax, dword [ebp - 0x18]
movzx edx, word [ebp - 0xe]
mov word [eax], dx
jmp 0xff9240
mov eax, dword [ebp - 0x18]
lea edx, [eax + 0xa]
movzx eax, word [ebp - 0xe]
mov word [edx], ax
add word [ebp - 0xc], 1
cmp word [ebp - 0xc], 9
jle 0xff90ee
mov eax, dword [ebp + 8]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
movzx eax, word [eax]
cwde
add eax, eax
neg eax
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x14], eax
add dword [ebp - 0x48], 2
mov eax, dword [ebp - 0x48]
movzx eax, word [eax]
cwde
add eax, eax
neg eax
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x18], eax
add dword [ebp - 0x48], 2
mov eax, dword [ebp - 0x48]
movzx eax, word [eax]
cwde
add eax, eax
neg eax
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x1c], eax
add dword [ebp - 0x48], 2
mov eax, dword [ebp - 0x48]
movzx eax, word [eax]
cwde
add eax, eax
neg eax
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x20], eax
add dword [ebp - 0x48], 2
mov eax, dword [ebp - 0x48]
movzx eax, word [eax]
cwde
add eax, eax
neg eax
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x24], eax
add dword [ebp - 0x48], 2
mov eax, dword [ebp - 0x48]
movzx eax, word [eax]
cwde
add eax, eax
neg eax
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x28], eax
add dword [ebp - 0x48], 2
mov eax, dword [ebp - 0x48]
movzx eax, word [eax]
cwde
add eax, eax
neg eax
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x2c], eax
add dword [ebp - 0x48], 2
mov eax, dword [ebp - 0x48]
movzx eax, word [eax]
cwde
add eax, eax
neg eax
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x30], eax
add dword [ebp - 0x48], 2
mov eax, dword [ebp - 0x48]
movzx eax, word [eax]
cwde
add eax, eax
neg eax
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x34], eax
add dword [ebp - 0x48], 2
mov eax, dword [ebp - 0x48]
movzx eax, word [eax]
cwde
add eax, eax
neg eax
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x38], eax
add dword [ebp - 0x48], 2
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x40], eax
mov word [ebp - 0xa], 0x28
jmp 0xff94a3
lea eax, [ebp - 0x60]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x14]
movzx eax, word [eax]
movsx edx, ax
mov eax, dword [ebp - 0x3c]
movzx eax, word [eax]
cwde
imul eax, edx
sar eax, 7
mov dword [ebp - 0x4c], eax
add dword [ebp - 0x14], 2
add dword [ebp - 0x3c], 2
mov eax, dword [ebp - 0x18]
movzx eax, word [eax]
movsx edx, ax
mov eax, dword [ebp - 0x3c]
movzx eax, word [eax]
cwde
imul eax, edx
sar eax, 7
add dword [ebp - 0x4c], eax
add dword [ebp - 0x18], 2
add dword [ebp - 0x3c], 2
mov eax, dword [ebp - 0x1c]
movzx eax, word [eax]
movsx edx, ax
mov eax, dword [ebp - 0x3c]
movzx eax, word [eax]
cwde
imul eax, edx
sar eax, 7
add dword [ebp - 0x4c], eax
add dword [ebp - 0x1c], 2
add dword [ebp - 0x3c], 2
mov eax, dword [ebp - 0x20]
movzx eax, word [eax]
movsx edx, ax
mov eax, dword [ebp - 0x3c]
movzx eax, word [eax]
cwde
imul eax, edx
sar eax, 7
add dword [ebp - 0x4c], eax
add dword [ebp - 0x20], 2
add dword [ebp - 0x3c], 2
mov eax, dword [ebp - 0x24]
movzx eax, word [eax]
movsx edx, ax
mov eax, dword [ebp - 0x3c]
movzx eax, word [eax]
cwde
imul eax, edx
sar eax, 7
add dword [ebp - 0x4c], eax
add dword [ebp - 0x24], 2
add dword [ebp - 0x3c], 2
mov eax, dword [ebp - 0x28]
movzx eax, word [eax]
movsx edx, ax
mov eax, dword [ebp - 0x3c]
movzx eax, word [eax]
cwde
imul eax, edx
sar eax, 7
add dword [ebp - 0x4c], eax
add dword [ebp - 0x28], 2
add dword [ebp - 0x3c], 2
mov eax, dword [ebp - 0x2c]
movzx eax, word [eax]
movsx edx, ax
mov eax, dword [ebp - 0x3c]
movzx eax, word [eax]
cwde
imul eax, edx
sar eax, 7
add dword [ebp - 0x4c], eax
add dword [ebp - 0x2c], 2
add dword [ebp - 0x3c], 2
mov eax, dword [ebp - 0x30]
movzx eax, word [eax]
movsx edx, ax
mov eax, dword [ebp - 0x3c]
movzx eax, word [eax]
cwde
imul eax, edx
sar eax, 7
add dword [ebp - 0x4c], eax
add dword [ebp - 0x30], 2
add dword [ebp - 0x3c], 2
mov eax, dword [ebp - 0x34]
movzx eax, word [eax]
movsx edx, ax
mov eax, dword [ebp - 0x3c]
movzx eax, word [eax]
cwde
imul eax, edx
sar eax, 7
add dword [ebp - 0x4c], eax
add dword [ebp - 0x34], 2
add dword [ebp - 0x3c], 2
mov eax, dword [ebp - 0x38]
movzx eax, word [eax]
movsx edx, ax
mov eax, dword [ebp - 0x3c]
movzx eax, word [eax]
cwde
imul eax, edx
sar eax, 7
add dword [ebp - 0x4c], eax
add dword [ebp - 0x38], 2
add dword [ebp - 0x3c], 2
mov eax, dword [ebp - 0x4c]
sub eax, 0xffffff80
sar eax, 8
mov edx, eax
mov eax, dword [ebp - 0x40]
mov word [eax], dx
add dword [ebp - 0x40], 2
sub word [ebp - 0xa], 1
cmp word [ebp - 0xa], 0
jne 0xff9339
add esp, 0x60
pop ebx
pop edi
pop ebp
ret