Function at 0x4e81c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], edi
cmp word [edi + 0x44b0], 0
je 0x4e83b7
cmp dword [edi + 0x24600], 0
push ebx
je 0x4e82e3
cmp dword [edi + 0x388], 9
movzx eax, word [edi + 0x44b2]
mov dword [ebp - 0xc], eax
mov word [edi + 0x44a8], ax
movzx eax, word [edi + 0x44b4]
mov word [edi + 0x44aa], ax
jne 0x4e83b6
mov edx, dword [edi + 0x44c0]
xor esi, esi
mov dword [ebp - 8], eax
mov edi, eax
movzx eax, di
mov ebx, 1
imul eax, esi
lea ecx, [eax*8 + 8]
mov ax, word [ecx + edx + 4]
or ax, word [ecx + edx]
je 0x4e824e
inc ebx
add ecx, 8
cmp ebx, 4
jl 0x4e8234
inc esi
cmp esi, 3
jl 0x4e8222
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0x10]
movzx eax, ax
mov dword [ebp - 4], esi
cmp esi, eax
jge 0x4e83b6
mov ecx, 3
lea eax, [ebx - 1]
cdq
idiv ecx
movzx eax, word [edi + 0x44aa]
dec eax
lea ebx, [edx + 1]
cmp ebx, eax
jge 0x4e82cd
lea esp, [esp]
movzx ecx, word [edi + 0x44aa]
mov eax, dword [edi + 0x44c0]
imul ecx, esi
mov esi, 2
add ecx, ebx
lea eax, [eax + ecx*8]
add eax, 8
lea ecx, [ecx]
movzx edx, word [eax - 0x10]
lea eax, [eax + 4]
movzx ecx, word [eax - 4]
add edx, ecx
sar edx, 1
mov word [eax - 0xc], dx
dec esi
jne 0x4e82a0
movzx eax, word [edi + 0x44aa]
add ebx, 3
mov esi, dword [ebp - 4]
dec eax
cmp ebx, eax
jl 0x4e8280
mov ecx, 3
movzx eax, word [edi + 0x44a8]
add esi, 3
mov dword [ebp - 4], esi
cmp esi, eax
jl 0x4e8267
jmp 0x4e83b6
movzx eax, word [edi + 0x44aa]
shl eax, 3
push eax
movzx eax, word [edi + 0x44a8]
push eax
call fcn.00592c0b
add esp, 8
mov esi, eax
mov ecx, edi
mov dword [ebp - 8], esi
push str.pre_interpolate__
push esi
call fcn.004dc800
xor ecx, ecx
xor eax, eax
mov dword [ebp - 4], ecx
cmp ax, word [edi + 0x44a8]
jae 0x4e8399
xor eax, eax
xor ebx, ebx
cmp ax, word [edi + 0x44aa]
jae 0x4e8387
mov esi, ecx
sar esi, 1
mov dword [ebp - 0x10], esi
push ebx
push ecx
mov ecx, edi
call fcn.004cde70
movzx edx, word [edi + 0x44b4]
mov ecx, ebx
imul edx, esi
sar ecx, 1
add edx, ecx
movzx ecx, word [edi + 0x44aa]
imul ecx, dword [ebp - 4]
lea esi, [eax + edx*4]
mov edx, dword [edi + 0x44c0]
add ecx, ebx
inc ebx
lea ecx, [eax + ecx*4]
mov ax, word [edx + esi*2]
mov edx, dword [ebp - 8]
mov esi, dword [ebp - 0x10]
mov word [edx + ecx*2], ax
movzx eax, word [edi + 0x44aa]
mov ecx, dword [ebp - 4]
cmp ebx, eax
jl 0x4e8338
movzx eax, word [edi + 0x44a8]
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, eax
jl 0x4e8324
mov esi, dword [ebp - 8]
push dword [edi + 0x44c0]
call fcn.00592c4b
add esp, 4
mov dword [edi + 0x44c0], esi
xor eax, eax
mov word [edi + 0x44b0], ax
pop ebx
mov esi, dword [edi + 0x388]
cmp esi, 0x3e8
jbe 0x4e8493
cmp dword [edi + 0x245dc], 3
jne 0x4e8493
mov edx, dword [edi + 0x24604]
mov eax, edx
mov ecx, dword [edi + 0x24600]
xor eax, ecx
or edx, ecx
mov dword [edi + 0x43f8], eax
je 0x4e83ff
mov dword [edi + 0x245dc], 4
jmp 0x4e8493
movzx eax, word [edi + 0x44a8]
shr esi, 5
and esi, 1
cmp esi, eax
jge 0x4e8479
mov edx, dword [edi + 0x388]
mov eax, esi
and eax, 7
lea ecx, [eax*4 + 2]
movzx eax, word [edi + 0x44aa]
shr edx, cl
and edx, 1
cmp edx, eax
jge 0x4e846b
jmp 0x4e8440
movzx ecx, word [edi + 0x44aa]
mov eax, dword [edi + 0x44c0]
imul ecx, esi
add ecx, edx
add edx, 2
lea ecx, [eax + ecx*8]
mov ax, word [ecx + 6]
mov word [ecx + 2], ax
movzx eax, word [edi + 0x44aa]
cmp edx, eax
jl 0x4e8440
movzx eax, word [edi + 0x44a8]
add esi, 2
cmp esi, eax
jl 0x4e8410
mov eax, dword [edi + 0x388]
mov ecx, eax
and ecx, 0xd5555555
add ecx, ecx
not ecx
and ecx, eax
mov dword [edi + 0x388], ecx
cmp dword [edi + 0x24600], 0
je 0x4e84a6
mov dword [edi + 0x388], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret