Function at 0x489f10
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
push 0x378
push 0
push 0xb0b8b8
call fcn.004e4d50
mov eax, dword [esp + 0x3c]
add esp, 0xc
movups xmm0, xmmword [eax + 0x44]
mov eax, dword [0xaf4ef8]
movups xmmword [esp + 0x1c], xmm0
movzx edi, word [eax + 0x32]
test di, di
je 0x48a046
mov eax, dword [esp + 0x1c]
neg edi
movsx esi, word [esp + 0x1c]
and edi, 0x7ff
shr eax, 0x10
mov ecx, esi
movsx edx, ax
mov eax, edx
mov ebx, dword [edi*4 + 0x596de0]
mov edi, dword [edi*4 + 0x5975e0]
imul edx, edi
imul ecx, edi
imul eax, ebx
imul esi, ebx
sub ecx, eax
mov eax, dword [esp + 0x20]
add edx, esi
sar ecx, 0x10
movsx esi, word [esp + 0x20]
add ecx, 0x6e
sar edx, 0x10
add edx, 0x6e
mov word [esp + 0x1c], cx
mov word [esp + 0x1e], dx
mov ecx, esi
shr eax, 0x10
movsx edx, ax
mov eax, edx
imul ecx, edi
imul edx, edi
imul eax, ebx
imul esi, ebx
sub ecx, eax
mov eax, dword [esp + 0x24]
add edx, esi
sar ecx, 0x10
movsx esi, word [esp + 0x24]
add ecx, 0x6e
sar edx, 0x10
add edx, 0x6e
shr eax, 0x10
mov word [esp + 0x22], dx
mov word [esp + 0x20], cx
mov ecx, esi
movsx edx, ax
mov eax, edx
imul ecx, edi
imul edx, edi
imul eax, ebx
imul esi, ebx
sub ecx, eax
mov eax, dword [esp + 0x28]
add edx, esi
sar ecx, 0x10
movsx esi, word [esp + 0x28]
add ecx, 0x6e
sar edx, 0x10
add edx, 0x6e
shr eax, 0x10
mov word [esp + 0x26], dx
mov word [esp + 0x24], cx
mov ecx, esi
movsx edx, ax
mov eax, edx
imul ecx, edi
imul eax, ebx
imul edx, edi
imul esi, ebx
sub ecx, eax
sar ecx, 0x10
add edx, esi
add ecx, 0x6e
sar edx, 0x10
add edx, 0x6e
mov word [esp + 0x28], cx
mov word [esp + 0x2a], dx
jmp 0x48a076
add word [esp + 0x1c], 0x6e
add word [esp + 0x1e], 0x6e
add word [esp + 0x20], 0x6e
add word [esp + 0x22], 0x6e
add word [esp + 0x24], 0x6e
add word [esp + 0x26], 0x6e
add word [esp + 0x28], 0x6e
add word [esp + 0x2a], 0x6e
xor eax, eax
mov edx, 0xdc
lea esi, [eax + 1]
movzx ecx, word [esp + eax*4 + 0x1c]
cmp cx, 1
jge 0x48a092
mov word [esp + eax*4 + 0x1c], si
jmp 0x48a09c
cmp cx, dx
jle 0x48a09c
mov word [esp + eax*4 + 0x1c], dx
movzx ecx, word [esp + eax*4 + 0x1e]
cmp cx, 1
jge 0x48a0ae
mov word [esp + eax*4 + 0x1e], si
jmp 0x48a0b8
cmp cx, dx
jle 0x48a0b8
mov word [esp + eax*4 + 0x1e], dx
inc eax
cmp eax, 4
jl 0x48a080
xor ecx, ecx
cmp ecx, 3
lea eax, [ecx + 1]
mov dword [esp + 0x18], eax
cmovge eax, ecx
xor edx, edx
cmp ecx, 3
cmovge ecx, edx
movsx edx, word [esp + eax*4 + 0x1e]
movzx edi, word [esp + eax*4 + 0x1c]
movsx esi, word [esp + ecx*4 + 0x1e]
movzx ecx, word [esp + ecx*4 + 0x1c]
sub edx, esi
mov dword [esp + 0x30], edx
je 0x48a18a
mov eax, edx
movsx ecx, cx
cdq
mov ebp, eax
mov dword [esp + 0x10], ecx
xor ebp, edx
movsx eax, di
sub eax, ecx
sub ebp, edx
shl eax, 8
xor edi, edi
cdq
idiv ebp
mov edx, eax
mov eax, ecx
mov dword [esp + 0x14], edx
test ebp, ebp
js 0x48a1b1
xor ebx, ebx
lea esi, [esi*4 + 0xb0b8ba]
cmp dword [esp + 0x30], ebx
setg bl
inc ebp
lea ebx, [ebx*8 - 4]
nop word [eax + eax]
movzx ecx, word [esi - 2]
test cx, cx
jne 0x48a152
movzx eax, ax
mov word [esi - 2], ax
jmp 0x48a166
movsx ecx, cx
cmp eax, ecx
jge 0x48a15f
mov word [esi - 2], ax
jmp 0x48a169
movsx ecx, word [esi]
cmp eax, ecx
jle 0x48a169
mov word [esi], ax
add edi, edx
add esi, ebx
mov eax, edi
cdq
and edx, 0xff
add eax, edx
mov edx, dword [esp + 0x14]
sar eax, 8
add eax, dword [esp + 0x10]
sub ebp, 1
jne 0x48a140
jmp 0x48a1b1
cmp cx, di
jge 0x48a1a1
mov word [esi*4 + 0xb0b8b8], cx
mov word [esi*4 + 0xb0b8ba], di
jmp 0x48a1b1
mov word [esi*4 + 0xb0b8b8], di
mov word [esi*4 + 0xb0b8ba], cx
mov ecx, dword [esp + 0x18]
cmp ecx, 4
jl 0x48a0c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret