Function at 0x4e9ea4
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 4
add esp, 0xfffff004
push eax
dec eax
jne 0x4e9ead
mov eax, dword [ebp - 4]
add esp, 0xfffff194
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov dword [ebp - 4], eax
xor edx, edx
push ebp
push 0x4ea119
push dword fs:[edx]
mov dword fs:[edx], esp
mov bl, 1
lea eax, [ebp - 0x4e70]
push eax
mov eax, dword [0x529948]
mov eax, dword [eax]
call eax
test eax, eax
jge 0x4e9f04
mov ecx, 0x4ea158
mov dl, 1
mov eax, dword [0x407cf0]
call fcn.0040be0c
call fcn.00403718
mov dword [ebp - 0x4e4c], esi
mov dword [ebp - 0x4e48], edi
push 1
lea eax, [ebp - 0x4e70]
push eax
mov eax, dword [0x529bd0]
mov eax, dword [eax]
call eax
test eax, eax
jge 0x4e9f3c
mov ecx, 0x4ea158
mov dl, 1
mov eax, dword [0x407cf0]
call fcn.0040be0c
call fcn.00403718
xor esi, esi
cmp dword [ebp + 8], 0
je 0x4e9f9e
or esi, 0xffffffff
or edi, 0xffffffff
xor ebx, ebx
mov ecx, ebx
mov eax, 1
shl eax, cl
mov ecx, eax
mov eax, dword [ebp - 0x4e44]
cdq
idiv ecx
push eax
mov eax, dword [ebp - 0x4e40]
cdq
idiv ecx
pop edx
imul edx, eax
mov ecx, edx
mov eax, 0x9c40
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp esi, 0xffffffff
je 0x4e9f85
cmp edi, eax
jle 0x4e9f89
mov edi, eax
mov esi, ebx
inc ebx
cmp ebx, 4
jne 0x4e9f4c
mov ecx, esi
mov bl, 1
shl bl, cl
mov esi, ebx
and esi, 0xff
dec esi
mov eax, dword [ebp - 0x4e44]
add eax, esi
xor ecx, ecx
mov cl, bl
cdq
idiv ecx
mov edi, eax
mov eax, dword [ebp - 0x4e40]
add eax, esi
cdq
idiv ecx
mov esi, eax
mov dword [ebp - 8], 3
mov dl, 6
mov eax, dword [ebp - 4]
call fcn.00420190
mov edx, edi
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov edx, esi
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov dword [ebp - 0x4e44], edi
mov dword [ebp - 0x4e40], esi
mov dword [ebp - 0x4e68], edi
mov eax, esi
neg eax
mov dword [ebp - 0x4e64], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x4e5c], eax
mov dword [ebp - 0x4e58], 2
mov eax, edi
imul dword [ebp - 8]
mov edx, eax
add edx, 3
test edx, edx
jns 0x4ea021
add edx, 3
sar edx, 2
shl edx, 2
sub edx, eax
mov dword [ebp - 0x4e60], edx
mov edx, esi
dec edx
mov eax, dword [ebp - 4]
call fcn.0041f3d4
mov dword [ebp - 0x4e6c], eax
mov eax, dword [ebp - 0x4e3c]
cmp eax, 3
jne 0x4ea057
mov dword [ebp - 0x4e38], 3
jmp 0x4ea07c
cmp eax, 1
jne 0x4ea068
mov dword [ebp - 0x4e38], 4
jmp 0x4ea07c
mov dword [ebp - 0x4e58], 0xff
mov dword [ebp - 0x4e38], 0xff
dec bl
je 0x4ea090
dec bl
je 0x4ea0a4
sub bl, 2
je 0x4ea0b8
sub bl, 4
je 0x4ea0cc
jmp 0x4ea0e0
push 3
lea eax, [ebp - 0x4e70]
push eax
mov eax, dword [0x529bd0]
mov eax, dword [eax]
call eax
jmp 0x4ea0e3
push 0xf
lea eax, [ebp - 0x4e70]
push eax
mov eax, dword [0x529bd0]
mov eax, dword [eax]
call eax
jmp 0x4ea0e3
push 0x11
lea eax, [ebp - 0x4e70]
push eax
mov eax, dword [0x529bd0]
mov eax, dword [eax]
call eax
jmp 0x4ea0e3
push 0x13
lea eax, [ebp - 0x4e70]
push eax
mov eax, dword [0x529bd0]
mov eax, dword [eax]
call eax
jmp 0x4ea0e3
or eax, 0xffffffff
test eax, eax
jge 0x4ea0fd
mov ecx, 0x4ea158
mov dl, 1
mov eax, dword [0x407cf0]
call fcn.0040be0c
call fcn.00403718
lea eax, [ebp - 0x4e70]
push eax
mov eax, dword [0x5297ec]
mov eax, dword [eax]
call eax
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4ea142
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4