Function at 0x486870
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x18
cmp word [0xc2766a], 0
movsx eax, word [0xc2766e]
push ebx
push ebp
mov dword [esp + 0x10], eax
movsx eax, word [0xc27670]
push esi
push edi
movsx edi, word [0xc2766c]
mov dword [esp + 0x1c], eax
movsx eax, word [0xc27672]
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], eax
je 0x486b67
mov eax, dword [esp + 0x2c]
mov ebx, dword [0x5c9796]
movzx ecx, word [eax + 0x29]
movsx eax, word [0x5ce9d3]
cmp ecx, eax
jne 0x4868db
test bl, 1
jne 0x4868db
mov dword [esp + 0x24], 4
mov bl, 0xf
jmp 0x48690c
mov eax, 0xaaaaaaab
mov dword [esp + 0x24], 2
mul ebx
mov eax, 0xaaaaaaab
mov ecx, edx
mul ebx
shr ecx, 3
shr edx, 2
sub edx, ecx
lea eax, [edx + edx*2]
shl eax, 2
sub eax, ebx
mov bl, 0xf
cdq
xor eax, edx
sub eax, edx
sub bl, al
push 0x5b56c8
mov byte [esp + 0x17], bl
call fcn.0045fbf0
mov edx, dword [esp + 0x1c]
add esp, 4
or dword [0x8d03d0], 8
movzx esi, bl
nop dword [eax + eax]
sub esp, 8
lea ebp, [edi + 6]
mov ecx, esp
push edx
mov byte [ecx + 4], bl
movzx eax, byte [esi*4 + 0xc76b98]
mov byte [ecx + 2], al
movzx eax, byte [esi*4 + 0xc76b99]
push ebp
mov byte [ecx + 1], al
movzx eax, byte [esi*4 + 0xc76b9a]
push edx
push edi
mov byte [ecx], al
mov byte [ecx + 3], 0xff
call fcn.0045f420
add esp, 0x10
mov ecx, esp
mov byte [ecx + 4], bl
movzx eax, byte [esi*4 + 0xc76b98]
mov byte [ecx + 2], al
movzx eax, byte [esi*4 + 0xc76b99]
mov byte [ecx + 1], al
movzx eax, byte [esi*4 + 0xc76b9a]
mov byte [ecx], al
mov eax, dword [esp + 0x1c]
mov byte [ecx + 3], 0xff
mov ecx, dword [esp + 0x20]
lea edi, [ecx + 6]
push edi
push eax
push ecx
push eax
call fcn.0045f420
add esp, 0x10
mov ecx, esp
mov byte [ecx + 4], bl
movzx eax, byte [esi*4 + 0xc76b98]
mov ebx, dword [esp + 0x24]
add ebx, dword [esp + 0x1c]
mov byte [ecx + 2], al
movzx eax, byte [esi*4 + 0xc76b99]
mov byte [ecx + 1], al
movzx eax, byte [esi*4 + 0xc76b9a]
mov byte [ecx], al
lea eax, [ebx - 6]
mov byte [ecx + 3], 0xff
mov ecx, dword [esp + 0x20]
push ecx
push ebx
push ecx
push eax
call fcn.0045f420
mov al, byte [esp + 0x2b]
add esp, 0x10
mov ecx, esp
push edi
mov edi, dword [esp + 0x24]
mov byte [ecx + 4], al
movzx eax, byte [esi*4 + 0xc76b98]
mov byte [ecx + 2], al
movzx eax, byte [esi*4 + 0xc76b99]
push ebx
mov byte [ecx + 1], al
movzx eax, byte [esi*4 + 0xc76b9a]
push edi
push ebx
mov byte [ecx], al
mov byte [ecx + 3], 0xff
call fcn.0045f420
mov al, byte [esp + 0x2b]
add esp, 0x10
mov ecx, esp
mov byte [ecx + 4], al
movzx eax, byte [esi*4 + 0xc76b98]
mov byte [ecx + 2], al
movzx eax, byte [esi*4 + 0xc76b99]
mov byte [ecx + 1], al
movzx eax, byte [esi*4 + 0xc76b9a]
mov byte [ecx], al
mov byte [ecx + 3], 0xff
mov ebx, dword [esp + 0x28]
add ebx, edi
push ebx
push ebp
mov ebp, dword [esp + 0x24]
push ebx
push ebp
call fcn.0045f420
mov al, byte [esp + 0x2b]
lea edi, [ebx - 6]
add esp, 0x10
mov ecx, esp
push ebx
mov byte [ecx + 4], al
movzx eax, byte [esi*4 + 0xc76b98]
mov byte [ecx + 2], al
movzx eax, byte [esi*4 + 0xc76b99]
push ebp
mov byte [ecx + 1], al
movzx eax, byte [esi*4 + 0xc76b9a]
push edi
push ebp
mov byte [ecx], al
mov byte [ecx + 3], 0xff
call fcn.0045f420
mov al, byte [esp + 0x2b]
add esp, 0x10
mov ebp, dword [esp + 0x24]
mov ecx, esp
add ebp, dword [esp + 0x1c]
push ebx
mov byte [ecx + 4], al
movzx eax, byte [esi*4 + 0xc76b98]
mov byte [ecx + 2], al
movzx eax, byte [esi*4 + 0xc76b99]
mov byte [ecx + 1], al
movzx eax, byte [esi*4 + 0xc76b9a]
push ebp
mov byte [ecx], al
lea eax, [ebp - 6]
push ebx
push eax
mov byte [ecx + 3], 0xff
call fcn.0045f420
mov al, byte [esp + 0x2b]
add esp, 0x10
mov ecx, esp
push ebx
mov byte [ecx + 4], al
movzx eax, byte [esi*4 + 0xc76b98]
mov byte [ecx + 2], al
movzx eax, byte [esi*4 + 0xc76b99]
push ebp
mov byte [ecx + 1], al
movzx eax, byte [esi*4 + 0xc76b9a]
push edi
push ebp
mov byte [ecx], al
mov byte [ecx + 3], 0xff
call fcn.0045f420
mov edi, dword [esp + 0x2c]
add esp, 0x18
mov edx, dword [esp + 0x18]
dec edi
add dword [esp + 0x1c], 2
dec edx
add dword [esp + 0x20], 2
sub dword [esp + 0x24], 1
mov bl, byte [esp + 0x13]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edx
jne 0x486930
push 0x5a36c8
call fcn.0045fbf0
add esp, 4
and dword [0x8d03d0], 0xfffffff7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret