Function at 0x48161e
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x20]
push edi
and dword [ebp - 8], 0
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [esi + 0x24]
add ecx, 8
push ecx
push 7
mov ecx, eax
pop edi
shr ecx, 8
and ecx, edi
push ecx
push 0x1f
pop ebx
shr eax, 0xb
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.004815f9
test eax, eax
je 0x48186f
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0x20]
shl ecx, 0x1c
or ecx, 0x8000000
push ecx
mov ecx, dword [esi + 0x24]
add ecx, 8
push ecx
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.00481ce9
test eax, eax
je 0x481845
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0x20]
and ecx, edi
or ecx, 0xffffff80
shl ecx, 8
or ecx, dword [ebp + 0x10]
shl ecx, 0x10
push ecx
mov ecx, dword [esi + 0x24]
add ecx, 4
push ecx
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.00481ce9
test eax, eax
je 0x481845
mov dword [ebp + 8], 0x186a0
mov eax, dword [esi + 0x20]
lea ecx, [ebp - 4]
push ecx
push dword [esi + 0x24]
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.004815f9
test eax, eax
je 0x481845
mov eax, dword [ebp - 4]
test eax, 0x10000000
jne 0x48171e
test eax, 0xa0000000
jne 0x481723
dec dword [ebp + 8]
jns 0x4816e1
mov ecx, eax
and ecx, 0xa0000000
cmp ecx, 0x80000000
je 0x481829
mov dword [ebp + 8], 0x3e8
mov eax, dword [esi + 0x20]
lea ecx, [ebp - 0xc]
push ecx
mov ecx, dword [esi + 0x24]
add ecx, 8
push ecx
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.004815f9
test eax, eax
je 0x481845
mov ecx, dword [ebp - 0xc]
mov eax, dword [esi + 0x20]
xor ecx, 0x8000000
push ecx
mov ecx, dword [esi + 0x24]
add ecx, 8
push ecx
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.00481ce9
test eax, eax
je 0x481845
mov eax, dword [esi + 0x20]
lea ecx, [ebp - 4]
push ecx
push dword [esi + 0x24]
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.004815f9
test eax, eax
je 0x481845
mov eax, dword [ebp - 4]
and eax, 0xb0000000
cmp eax, 0x10000000
je 0x4817e4
dec dword [ebp + 8]
jns 0x48173e
mov dword [ebp + 8], 0x3e8
mov eax, dword [esi + 0x20]
lea ecx, [ebp - 4]
push ecx
push dword [esi + 0x24]
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.004815f9
test eax, eax
je 0x481845
mov eax, dword [ebp - 4]
test eax, 0x10000000
jne 0x481824
test eax, 0xa0000000
jne 0x481829
dec dword [ebp + 8]
jns 0x4817eb
mov ecx, eax
and ecx, 0xa0000000
cmp ecx, 0x80000000
jne 0x481845
mov ecx, dword [ebp + 0x14]
mov byte [ecx], al
mov dword [ebp - 8], 1
push dword [ebp - 0x10]
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
add ecx, 8
push ecx
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.00481ce9
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret 0x10