Function at 0x4f15e0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
push eax
mov esi, ecx
push edi
call fcn.004f0c40
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
push ebx
push 0
push edi
push ecx
mov ecx, esi
call fcn.004f20e0
test eax, eax
jge 0x4f137a
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov al, byte [ebp + 0x10]
test al, al
je 0x4f13a0
mov edx, dword [ebp + 8]
push ebx
push 1
push edi
push edx
mov ecx, esi
call fcn.004f20e0
test eax, eax
jge 0x4f13a0
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov cl, 1
call fcn.004e1050
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push eax
push ecx
mov ecx, esi
call fcn.004fa030
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
lea ecx, [esi + 0x10]
push edx
push eax
call fcn.0053e4b0
xor ebx, ebx
lea edi, [esi + 0x20]
mov eax, dword [edi + 4]
test eax, eax
je 0x4f13ec
mov ecx, dword [edi + 8]
sub ecx, eax
sar ecx, 2
cmp ebx, ecx
jae 0x4f13ec
mov edx, dword [esi + 0x24]
mov ecx, dword [edx + ebx*4]
call fcn.0054d5b0
inc ebx
jmp 0x4f13cb
mov eax, dword [edi + 8]
mov ecx, dword [edi + 4]
push eax
push ecx
mov ecx, edi
call fcn.0055bc50
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0x34]
lea ecx, [esi + 0x30]
push edx
push eax
call fcn.004fa450
mov edx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
lea ecx, [esi + 0x40]
push edx
push eax
call fcn.004fa830
mov edx, dword [esi + 0x58]
mov eax, dword [esi + 0x54]
lea ecx, [esi + 0x50]
push edx
push eax
call fcn.004fac10
mov ecx, dword [esi + 0x68]
mov edx, dword [esi + 0x64]
lea ebx, [esi + 0x60]
push ecx
push edx
mov ecx, ebx
call fcn.004fb000
mov eax, dword [esi + 0x78]
mov edx, dword [esi + 0x74]
lea ecx, [esi + 0x70]
push eax
push edx
call fcn.004fb590
mov eax, dword [esi + 0x88]
mov edx, dword [esi + 0x84]
lea ecx, [esi + 0x80]
push eax
push edx
call fcn.004fb910
mov eax, dword [esi + 0x98]
mov edx, dword [esi + 0x94]
lea ecx, [esi + 0x90]
push eax
push edx
call fcn.004fbd50
mov eax, dword [0x67db18]
mov edx, dword [eax + 0x203d0]
lea ecx, [eax + 0x203c8]
mov eax, dword [ecx + 4]
push edx
push eax
call fcn.004c6d90
mov ecx, dword [0x67db18]
mov edx, dword [ecx + 0x54]
mov eax, dword [ecx + 0x50]
add ecx, 0x4c
push edx
push eax
call fcn.004fbf00
mov ecx, dword [0x67db18]
mov edx, dword [ecx + 0x4c0a4]
mov eax, dword [ecx + 0x4c0a0]
add ecx, 0x4c09c
push edx
push eax
call fcn.004c7150
mov ecx, dword [0x67db18]
mov edx, dword [ecx + 0x4c0b4]
mov eax, dword [ecx + 0x4c0b0]
add ecx, 0x4c0ac
push edx
push eax
call fcn.004c7450
mov ecx, dword [0x67db18]
mov eax, dword [ecx + 0x4c0c0]
lea edi, [ecx + 0x4c0bc]
mov ecx, dword [edi + 8]
push eax
mov edx, ecx
call fcn.004fcaf0
mov edx, dword [edi + 8]
push edx
push eax
mov ecx, edi
mov dword [ebp + 0x10], eax
call fcn.00404190
mov eax, dword [ebp + 0x10]
mov dword [edi + 8], eax
mov ecx, dword [0x67db18]
mov edx, dword [ecx + 0x4c0d4]
mov eax, dword [ecx + 0x4c0d0]
add ecx, 0x4c0cc
push edx
push eax
call fcn.004c7450
mov ecx, dword [0x67db18]
mov eax, dword [ecx + 0x4c0e0]
lea edi, [ecx + 0x4c0dc]
mov ecx, dword [edi + 8]
push eax
mov edx, ecx
call fcn.004fcb30
mov edx, dword [edi + 8]
push edx
push eax
mov ecx, edi
mov dword [ebp + 0x10], eax
call fcn.00404190
mov eax, dword [ebp + 0x10]
mov dword [edi + 8], eax
mov ecx, dword [0x67db18]
mov edx, dword [ecx + 0x4c0f4]
mov eax, dword [ecx + 0x4c0f0]
add ecx, 0x4c0ec
push edx
push eax
call fcn.004fbe70
mov ecx, dword [0x67db18]
mov edx, dword [ecx + 0x4c104]
mov eax, dword [ecx + 0x4c100]
add ecx, 0x4c0fc
push edx
push eax
call fcn.004cabf0
mov edi, dword [ebp + 8]
push edi
mov ecx, esi
call fcn.004f81a0
test eax, eax
jge 0x4f15ca
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0x14]
push ecx
push edi
mov ecx, esi
call fcn.004f39b0
test eax, eax
jge 0x4f15e6
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push edi
mov ecx, esi
call fcn.004f2710
test eax, eax
jge 0x4f15fe
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push edi
mov ecx, esi
call fcn.004f4e20
test eax, eax
jge 0x4f1616
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [edi]
push 2
lea eax, [ebp + 0xa]
push eax
mov ecx, edi
call dword [edx + 4]
cmp eax, 2
jb 0x4f16e0
lea ecx, [ebp - 0x18]
call fcn.00562ad0
movsx ecx, word [ebp + 0xa]
push eax
push ecx
mov ecx, ebx
call fcn.004f98e0
mov ecx, ebx
mov dword [ebp + 0xc], 0
call fcn.004f9c00
test eax, eax
jbe 0x4f16ae
mov dword [ebp + 0x10], 0
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
push edx
mov edx, dword [esi + 0x64]
push edi
add ecx, edx
call fcn.00564000
mov eax, dword [esi + 0x64]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + eax]
test eax, eax
mov dword [ebp - 4], eax
je 0x4f1692
mov eax, dword [esi + 0xb8]
lea ecx, [esi + 0xb0]
lea edx, [ebp - 4]
push edx
push eax
call fcn.0053e500
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
inc eax
add edx, 0x13
mov ecx, ebx
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], edx
call fcn.004f9c00
cmp dword [ebp + 0xc], eax
jb 0x4f165a
cmp dword [ebp + 0x14], 0x19
jl 0x4f16bc
push edi
mov ecx, esi
call fcn.004f10d0
push edi
mov ecx, esi
call fcn.004efe10
test eax, eax
jge 0x4f16d4
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push edi
mov ecx, esi
call fcn.004f0160
test eax, eax
jge 0x4f16ec
pop edi
pop esi
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov cl, 1
call fcn.004e1050
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10