Function at 0x485950
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x13c
push ebx
push esi
push edi
lea edi, [ebp - 0x13c]
mov ecx, 0x4f
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov dword [ebp - 8], 0
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
and ecx, 7
mov dword [ebp - 0x20], ecx
cmp dword [ebp + 0xc], 5
jae 0x48598d
xor eax, eax
jmp 0x485be0
mov eax, dword [ebp + 0x10]
add eax, 5
mov dword [ebp + 0x10], eax
mov dword [ebp - 0x14], 0xffffffff
mov eax, dword [ebp + 8]
add eax, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax - 4]
mov dword [ebp - 0x38], edx
jmp 0x4859be
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x38]
jae 0x4859de
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
and ecx, 0xfe
cmp ecx, 0xe8
jne 0x4859dc
jmp 0x4859de
jmp 0x4859b5
mov eax, dword [ebp - 0x2c]
sub eax, dword [ebp + 8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x38]
jb 0x4859f4
jmp 0x485ba3
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jbe 0x485a0c
mov dword [ebp - 0x20], 0
jmp 0x485a7c
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov eax, dword [ebp - 0x20]
shl eax, cl
and eax, 7
mov dword [ebp - 0x20], eax
je 0x485a7c
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4bef20]
mov edx, 4
sub edx, ecx
mov eax, dword [ebp - 0x2c]
mov cl, byte [eax + edx]
mov byte [ebp - 0x41], cl
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4bef18]
test ecx, ecx
je 0x485a5a
movzx eax, byte [ebp - 0x41]
test eax, eax
je 0x485a5a
movzx eax, byte [ebp - 0x41]
cmp eax, 0xff
jne 0x485a7c
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x20]
shl eax, 1
and eax, 7
or eax, 1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
jmp 0x48599d
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 4]
test ecx, ecx
je 0x485aa0
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 4]
cmp ecx, 0xff
jne 0x485b87
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 4]
shl ecx, 0x18
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 3]
shl eax, 0x10
or ecx, eax
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 2]
shl eax, 8
or ecx, eax
mov edx, dword [ebp - 0x2c]
movzx eax, byte [edx + 1]
or ecx, eax
mov dword [ebp - 0x50], ecx
cmp dword [ebp + 0x18], 0
je 0x485ae2
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 8]
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x5c], eax
jmp 0x485af0
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x50]
sub ecx, eax
mov dword [ebp - 0x5c], ecx
cmp dword [ebp - 0x20], 0
jne 0x485af8
jmp 0x485b47
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4bef20]
shl ecx, 3
mov dword [ebp - 0x74], ecx
mov ecx, 0x18
sub ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x5c]
shr eax, cl
mov byte [ebp - 0x65], al
movzx eax, byte [ebp - 0x65]
test eax, eax
je 0x485b2d
movzx eax, byte [ebp - 0x65]
cmp eax, 0xff
je 0x485b2d
jmp 0x485b47
mov ecx, 0x20
sub ecx, dword [ebp - 0x74]
mov eax, 1
shl eax, cl
sub eax, 1
xor eax, dword [ebp - 0x5c]
mov dword [ebp - 0x50], eax
jmp 0x485ace
mov eax, dword [ebp - 0x5c]
shr eax, 0x18
and eax, 1
sub eax, 1
not eax
mov ecx, dword [ebp - 0x2c]
mov byte [ecx + 4], al
mov eax, dword [ebp - 0x5c]
shr eax, 0x10
mov ecx, dword [ebp - 0x2c]
mov byte [ecx + 3], al
mov eax, dword [ebp - 0x5c]
shr eax, 8
mov ecx, dword [ebp - 0x2c]
mov byte [ecx + 2], al
mov eax, dword [ebp - 0x2c]
mov cl, byte [ebp - 0x5c]
mov byte [eax + 1], cl
mov eax, dword [ebp - 8]
add eax, 5
mov dword [ebp - 8], eax
jmp 0x485b9e
mov eax, dword [ebp - 0x20]
shl eax, 1
and eax, 7
or eax, 1
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
jmp 0x48599d
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jbe 0x485bbe
mov dword [ebp - 0x13c], 0
jmp 0x485bd2
mov ecx, dword [ebp - 0x14]
sub ecx, 1
mov eax, dword [ebp - 0x20]
shl eax, cl
and eax, 7
mov dword [ebp - 0x13c], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x13c]
mov dword [ecx], edx
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret