Function at 0x4844b4
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x24
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], edi
test esi, esi
lea esi, [esi - 1]
je 0x48451b
mov ecx, dword [esp + 0x2c]
movzx ebx, byte [esi + ecx]
cmp bl, 0x80
jb 0x4844e9
lea ecx, [esi + 1]
cmp dword [esp + 0x28], ecx
jae 0x484533
jmp 0x484671
movzx eax, bl
call fcn.0045b830
xor al, 1
je 0x4844c7
lea ebx, [esi + 1]
cmp dword [esp + 0x28], ebx
jb 0x484699
lea eax, [esi + 1]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
add esp, 0x24
ret 8
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
add esp, 0x24
xor eax, eax
ret 8
lea edi, [esi + 1]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x28], edi
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
test ebx, ebx
lea ebx, [ebx - 1]
je 0x48464b
cmp ebx, dword [esp + 0x28]
jae 0x4846c1
mov esi, dword [esp + 0x2c]
movzx ecx, byte [esi + ebx]
cmp cl, 0x7f
ja 0x48457f
mov byte [esp + 0x22], cl
movzx eax, byte [esp + 0x22]
call fcn.00458bc8
test al, al
jne 0x484546
jmp 0x48464b
test ebx, ebx
je 0x48464b
mov dl, cl
and dl, 0xc0
cmp dl, 0x80
jne 0x48464b
mov dl, cl
and edx, 0x3f
mov esi, edx
lea edx, [ebx - 1]
cmp edx, dword [esp + 0x28]
jae 0x4846e9
mov ecx, dword [esp + 0x2c]
add ecx, ebx
movzx eax, byte [ecx - 1]
mov edx, eax
and dl, 0xe0
cmp dl, 0xc0
jne 0x4845e4
mov byte [esp + 0x21], al
mov al, byte [esp + 0x21]
and eax, 0x1f
shl eax, 6
add eax, esi
call fcn.00458bc8
test al, al
je 0x48464b
dec ebx
jmp 0x484546
cmp ebx, 1
je 0x48464b
mov cl, al
and cl, 0xc0
cmp cl, 0x80
jne 0x48464b
lea edx, [ebx - 2]
cmp edx, dword [esp + 0x28]
jae 0x484711
mov byte [esp + 0x21], al
mov ecx, dword [esp + 0x2c]
add ecx, ebx
movzx edx, byte [ecx - 2]
mov byte [esp + 0x20], dl
and dl, 0xf0
cmp dl, 0xe0
jne 0x48464b
mov al, byte [esp + 0x20]
mov cl, byte [esp + 0x21]
and eax, 0xf
and ecx, 0x3f
shl ecx, 6
shl eax, 0xc
add ecx, esi
add eax, ecx
call fcn.00458bc8
test al, al
je 0x48464b
add ebx, 0xfffffffe
jmp 0x484546
lea edx, [ebx + 1]
cmp dword [esp + 0x28], edx
jb 0x484739
lea eax, [ebx + 1]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
add esp, 0x24
ret 8
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x10], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0xc9c
mov dword [esp], 0x4ea970
call fcn.00449d20
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x10], edx
mov dword [esp + 8], 0
mov dword [esp + 4], 0xca1
mov dword [esp], 0x4ea970
call fcn.00449d20
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0xcb7
mov dword [esp], 0x4ea970
call fcn.00449d20
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0xcc3
mov dword [esp], 0x4ea970
call fcn.00449d20
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0xccf
mov dword [esp], 0x4ea970
call fcn.00449d20
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x28]
mov dword [esp + 0x10], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0xcde
mov dword [esp], 0x4ea970
call fcn.00449d20
int3