Function at 0x485650
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 0x48568d
xor eax, eax
jmp 0x4858e0
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 0x4856be
mov eax, dword [ebp - 0x2c]
add eax, 1
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x38]
jae 0x4856de
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
and ecx, 0xfe
cmp ecx, 0xe8
jne 0x4856dc
jmp 0x4856de
jmp 0x4856b5
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 0x4856f4
jmp 0x4858a3
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jbe 0x48570c
mov dword [ebp - 0x20], 0
jmp 0x48577c
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 0x48577c
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4e4fc8]
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 + 0x4e4fc0]
test ecx, ecx
je 0x48575a
movzx eax, byte [ebp - 0x41]
test eax, eax
je 0x48575a
movzx eax, byte [ebp - 0x41]
cmp eax, 0xff
jne 0x48577c
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 0x48569d
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 4]
test ecx, ecx
je 0x4857a0
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 4]
cmp ecx, 0xff
jne 0x485887
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 0x4857e2
mov eax, dword [ebp + 0x10]
add eax, dword [ebp - 8]
add eax, dword [ebp - 0x50]
mov dword [ebp - 0x5c], eax
jmp 0x4857f0
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 0x4857f8
jmp 0x485847
mov eax, dword [ebp - 0x20]
movzx ecx, byte [eax + 0x4e4fc8]
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 0x48582d
movzx eax, byte [ebp - 0x65]
cmp eax, 0xff
je 0x48582d
jmp 0x485847
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 0x4857ce
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 0x48589e
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 0x48569d
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 3
jbe 0x4858be
mov dword [ebp - 0x13c], 0
jmp 0x4858d2
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