Function at 0x4c11d0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
push ebx
push edi
call fcn.004c00d0
add esp, 8
test al, al
je 0x4c1202
add ebx, edi
mov ecx, esi
push ebx
push edi
call fcn.004c1ab0
mov bl, 1
jmp 0x4c142c
mov ecx, esi
push 0
push ebx
call fcn.004c0be0
cmp byte [esi + 0xb], 0
js 0x4c13ec
mov ecx, esi
test ebx, ebx
je 0x4c13f6
mov bl, 1
xor eax, eax
xor esi, esi
mov dword [ebp - 0x18], ecx
jmp 0x4c1262
mov ecx, edx
shr ecx, 0xa
add ecx, 0xffffd7c0
mov edi, dword [ebp - 0x18]
mov word [edi + eax*2], cx
mov ecx, edi
inc eax
and edx, 0x3ff
or edx, 0xdc00
mov edi, dword [ebp + 8]
mov word [ecx + eax*2], dx
inc eax
cmp esi, dword [ebp + 0xc]
jae 0x4c13e4
lea ecx, [esi + 1]
movzx edx, byte [edi + esi]
test dl, 0x80
jne 0x4c1280
mov esi, ecx
jmp 0x4c13a0
mov edi, ebx
mov ebx, dword [ebp + 0xc]
cmp ecx, ebx
jne 0x4c1290
mov esi, ebx
jmp 0x4c1360
cmp dl, 0xe0
jb 0x4c12e4
cmp dl, 0xef
ja 0x4c12f8
and edx, 0xf
movzx ebx, byte [edx + str._000000000000]
mov esi, dword [ebp + 8]
movzx esi, byte [esi + ecx]
mov dword [ebp - 0x10], esi
shr esi, 5
bt ebx, esi
mov ebx, edi
jae 0x4c1391
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp - 0x10]
and bl, 0x3f
mov dword [ebp - 0x10], ebx
mov edi, dword [ebp + 8]
inc ecx
mov esi, dword [ebp + 0xc]
cmp ecx, esi
jne 0x4c1369
mov edx, 0xffffffff
mov ebx, dword [ebp - 0x14]
jmp 0x4c13a0
cmp dl, 0xc2
jb 0x4c1353
and edx, 0x1f
mov esi, edx
mov ebx, edi
mov edi, dword [ebp + 8]
jmp 0x4c1375
cmp dl, 0xf4
mov ebx, edi
ja 0x4c1391
add edx, 0xffffff10
mov edi, dword [ebp + 8]
movzx edi, byte [edi + ecx]
mov dword [ebp - 0x1c], edi
shr edi, 4
movsx edi, byte [edi + 0x624bb9]
bt edi, edx
jae 0x4c1391
add esi, 2
mov ecx, dword [ebp + 0xc]
cmp esi, ecx
je 0x4c1391
mov edi, dword [ebp + 8]
movzx ecx, byte [edi + esi]
add cl, 0x80
cmp cl, 0x3f
ja 0x4c1393
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ecx
shl edx, 6
mov ecx, dword [ebp - 0x1c]
and ecx, 0x3f
or edx, ecx
mov ecx, esi
jmp 0x4c12cb
mov esi, ecx
nop word cs:[eax + eax]
mov edx, 0xffffffff
mov ebx, edi
jmp 0x4c13a0
shl edx, 6
movzx esi, byte [ebp - 0x10]
or esi, edx
mov ebx, dword [ebp - 0x14]
movzx edx, byte [edi + ecx]
xor edx, 0x80
cmp dl, 0x3f
ja 0x4c1391
shl esi, 6
or esi, edx
inc ecx
mov edx, esi
jmp 0x4c126e
mov esi, ecx
mov edx, 0xffffffff
nop dword [eax + eax]
cmp edx, 0xd800
setb cl
lea edi, [edx - 0xe000]
cmp edi, 0x102000
setb ch
or ch, cl
movzx ebx, bl
mov ecx, 0
cmove ebx, ecx
mov ecx, 0xfffd
cmove edx, ecx
cmp edx, 0xffff
ja 0x4c1230
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
jmp 0x4c1254
and bl, 1
mov esi, dword [ebp + 0x10]
jmp 0x4c13fa
mov ecx, dword [esi]
test ebx, ebx
jne 0x4c1220
mov bl, 1
xor eax, eax
mov ecx, esi
push 0
push eax
call fcn.004c0be0
movzx ecx, byte [esi + 0xb]
test cl, cl
js 0x4c1436
mov eax, ecx
add eax, 8
and eax, 0xfffffff8
dec eax
cmp cl, 5
mov ecx, 4
cmovb eax, ecx
cmp eax, ecx
je 0x4c142c
mov ecx, esi
push eax
call fcn.004c0980
mov eax, ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 4]
lea ecx, [eax + 8]
and ecx, 0xfffffff8
dec ecx
cmp eax, 5
mov eax, 4
cmovae eax, ecx
mov ecx, SysReAllocString
and ecx, dword [esi + 8]
dec ecx
cmp eax, ecx
jne 0x4c1424
jmp 0x4c142c