Function at 0x4f0fa0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5dc75d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x28
push esi
push edi
mov eax, dword [0x63d284]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x2c], eax
mov eax, dword [eax]
xor esi, esi
mov ecx, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], ecx
mov edi, dword [eax + 4]
mov dword [ebp - 0x20], edi
cmp byte [edi + 0xd], 0
jne 0x4f1091
mov edx, dword [ebx + 0xc]
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x18], eax
cmp dword [edx + 0x14], 8
mov eax, edx
mov dword [ebp - 0x20], edi
jb 0x4f1012
mov eax, dword [edx]
cmp dword [edi + 0x24], 8
lea edx, [edi + 0x10]
jb 0x4f101e
mov edx, dword [edi + 0x10]
mov esi, dword [edi + 0x20]
mov ecx, esi
cmp dword [ebp - 0x18], esi
mov dword [ebp - 0x28], esi
cmovb ecx, dword [ebp - 0x18]
test ecx, ecx
je 0x4f1050
sub edx, eax
mov dword [ebp - 0x24], edx
movzx edx, word [edx + eax]
movzx esi, word [eax]
cmp dx, si
jne 0x4f105c
mov edx, dword [ebp - 0x24]
add eax, 2
sub ecx, 1
jne 0x4f1036
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
cmp eax, esi
jbe 0x4f1064
or eax, 0xffffffff
jmp 0x4f1068
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x4f1068
sbb eax, eax
neg eax
shr eax, 0x1f
test al, al
je 0x4f1077
mov edi, dword [edi + 8]
mov ecx, dword [ebp - 0x1c]
jmp 0x4f107e
mov ecx, edi
mov edi, dword [edi]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebx + 0xc]
movzx esi, al
xor esi, 1
cmp byte [edi + 0xd], 0
je 0x4f1005
cmp byte [ecx + 0xd], 0
jne 0x4f112d
cmp dword [ecx + 0x24], 8
lea eax, [ecx + 0x10]
jb 0x4f10a7
mov eax, dword [ecx + 0x10]
mov edi, dword [ebx + 0xc]
mov edx, edi
cmp dword [edi + 0x14], 8
jb 0x4f10b4
mov edx, dword [edi]
mov edi, dword [ecx + 0x20]
mov ecx, dword [ebx + 0xc]
mov dword [ebp - 0x24], edi
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebx + 0xc]
cmp edi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x28]
cmovb ecx, edi
test ecx, ecx
je 0x4f10fa
sub edx, eax
mov dword [ebp - 0x28], edx
nop dword [eax + eax]
movzx edx, word [edx + eax]
movzx edi, word [eax]
cmp dx, di
jne 0x4f1109
mov edx, dword [ebp - 0x28]
add eax, 2
sub ecx, 1
jne 0x4f10e0
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + 0x10]
cmp edi, eax
jbe 0x4f1111
or eax, 0xffffffff
jmp 0x4f1115
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x4f1115
sbb eax, eax
neg eax
shr eax, 0x1f
test al, al
jne 0x4f112d
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
mov byte [eax + 4], 0
jmp 0x4f11be
mov edi, dword [ebp - 0x2c]
cmp dword [edi + 4], 0x6666666
je 0x4f11d4
mov dword [ebp - 0x30], edi
mov dword [ebp - 4], 0
push 0x28
mov dword [ebp - 0x2c], 0
call fcn.00591cad
add esp, 4
test eax, eax
je 0x4f11d9
mov ecx, dword [ebx + 0xc]
xor edx, edx
mov dword [eax + 0x10], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
movups xmm0, xmmword [ecx]
push eax
push esi
push dword [ebp - 0x20]
movups xmmword [eax + 0x10], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [eax + 0x20], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 7
mov word [ecx], dx
mov ecx, dword [ebp - 0x34]
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov ecx, edi
mov word [eax + 0xc], dx
call fcn.004f1310
mov ecx, dword [ebx + 8]
mov dword [ecx], eax
mov eax, ecx
mov byte [ecx + 4], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
call fcn.00404387
push 0x638780
lea eax, [ebp - 0x11]
push eax
call fcn.0057359b
int3