Function at 0x4f3990
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov esi, ecx
mov eax, 0x400
xor ecx, ecx
jmp 0x4f39e7
movzx edi, di
movzx edi, byte [edx + edi]
movzx ebx, bx
movzx ebx, byte [edx + ebx]
shl edi, 0x10
shl ebx, 8
or ebx, edi
movzx edi, bp
movzx edi, byte [edx + edi]
or edi, ebx
shl edi, 8
movzx ebx, cx
movzx ebx, byte [edx + ebx]
or ebx, edi
xor dword [esi + eax*4], ebx
inc ecx
inc eax
cmp eax, 0x412
je 0x4f3a46
cmp cx, 0x40
jb 0x4f3a00
xor edi, edi
lea ebx, [edi + 1]
cmp bx, 0x40
jae 0x4f3a0b
jmp 0x4f3a0d
mov edi, ecx
lea ebx, [edi + 1]
cmp bx, 0x40
jb 0x4f3a0d
xor ebx, ebx
lea ebp, [ebx + 1]
cmp bp, 0x40
jae 0x4f3a30
lea ecx, [ebp + 1]
cmp cx, 0x40
jb 0x4f39b0
jmp 0x4f3a3f
xor ebp, ebp
lea ecx, [ebp + 1]
cmp cx, 0x40
jb 0x4f39b0
xor ecx, ecx
jmp 0x4f39b0
mov dword [esp], 0
mov dword [esp + 4], 0
lea ebx, [esp + 4]
mov edi, esp
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + 0x1000], eax
mov eax, dword [esp + 4]
mov dword [esi + 0x1004], eax
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + 0x1008], eax
mov eax, dword [esp + 4]
mov dword [esi + 0x100c], eax
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + 0x1010], eax
mov eax, dword [esp + 4]
mov dword [esi + 0x1014], eax
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + 0x1018], eax
mov eax, dword [esp + 4]
mov dword [esi + 0x101c], eax
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + 0x1020], eax
mov eax, dword [esp + 4]
mov dword [esi + 0x1024], eax
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + 0x1028], eax
mov eax, dword [esp + 4]
mov dword [esi + 0x102c], eax
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + 0x1030], eax
mov eax, dword [esp + 4]
mov dword [esi + 0x1034], eax
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + 0x1038], eax
mov eax, dword [esp + 4]
mov dword [esi + 0x103c], eax
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + 0x1040], eax
mov eax, dword [esp + 4]
mov dword [esi + 0x1044], eax
mov ebp, 0xfffffffe
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + ebp*4 + 8], eax
mov eax, dword [esp + 4]
mov dword [esi + ebp*4 + 0xc], eax
add ebp, 2
cmp ebp, 0xfe
jb 0x4f3b80
mov ebp, 0xfffffffe
mov edi, esp
nop
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + ebp*4 + 0x408], eax
mov eax, dword [esp + 4]
mov dword [esi + ebp*4 + 0x40c], eax
add ebp, 2
cmp ebp, 0xfe
jb 0x4f3bb0
mov ebp, 0xfffffffe
mov edi, esp
nop word cs:[eax + eax]
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + ebp*4 + 0x808], eax
mov eax, dword [esp + 4]
mov dword [esi + ebp*4 + 0x80c], eax
add ebp, 2
cmp ebp, 0xfe
jb 0x4f3bf0
mov ebp, 0xfffffffe
mov edi, esp
nop word cs:[eax + eax]
mov ecx, esi
mov edx, edi
push ebx
call fcn.004f3c70
add esp, 4
mov eax, dword [esp]
mov dword [esi + ebp*4 + 0xc08], eax
mov eax, dword [esp + 4]
mov dword [esi + ebp*4 + 0xc0c], eax
add ebp, 2
cmp ebp, 0xfe
jb 0x4f3c30
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret