Function at 0x4b1e60
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, ecx
mov eax, dword [esp + 0x28]
add dword [ecx + 0x7c], eax
mov edi, edx
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xc], eax
mov bh, byte [ecx + 0x78]
test bh, bh
mov byte [esp], bh
je 0x4b1f10
xor edx, edx
nop word [eax + eax]
movzx ecx, bh
xor ebp, ebp
nop word cs:[eax + eax]
nop
mov eax, dword [esi + ebp*8]
cmp eax, edi
setb bl
jae 0x4b1ec0
add ebp, 1
cmp ecx, ebp
jne 0x4b1ea0
mov ebp, ecx
jmp 0x4b1ec6
je 0x4b202a
cmp byte [esi + 0x79], 0
je 0x4b1f2a
cmp bh, 0xf
jne 0x4b1fcd
mov ecx, esi
mov ebx, edx
mov esi, dword [esp + 0xc]
mov edx, esi
call fcn.004b2110
xor eax, eax
cmp dword [esi + 8], edi
setbe al
xor bl, 1
or byte [esp + 7], bl
mov esi, dword [esi + eax*4]
mov eax, dword [esp + 0x28]
add dword [esi + 0x7c], eax
mov bh, byte [esi + 0x78]
mov dl, 1
mov dword [esp + 0xc], 0
test bh, bh
jne 0x4b1e90
jmp 0x4b1f10
cmp byte [esp], 0
setne dl
xor ebp, ebp
cmp byte [esi + 0x79], 0
jne 0x4b1ff1
mov dword [esp], edx
mov bl, 1
jmp 0x4b1f2d
mov dword [esp], edx
mov ecx, dword [esi + ebp*4 + 0x80]
mov edx, edi
mov edi, dword [esp + 0xc]
push edi
push dword [esp + 0x2c]
call fcn.004b1e60
add esp, 8
test al, al
je 0x4b1fc6
cmp byte [esi + 0x78], 0xf
jne 0x4b201a
mov eax, dword [edi]
mov dword [esi + ebp*4 + 0x80], eax
mov eax, dword [edi + 4]
mov dword [esp + 8], eax
mov ebp, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x10], eax
mov ecx, esi
mov edx, edi
call fcn.004b2110
xor eax, eax
cmp ebp, dword [edi + 8]
setae al
mov esi, dword [edi + eax*4]
movzx eax, byte [esi + 0x78]
test eax, eax
mov edx, dword [esp]
je 0x4b1fb6
lea ebx, [eax*8]
lea ecx, [eax*4]
xor edi, edi
nop
cmp ebp, dword [esi + edi*8]
jbe 0x4b20a5
add edi, 1
add ebx, 0xfffffff8
add ecx, 0xfffffffc
cmp eax, edi
jne 0x4b1fa0
mov ecx, dword [esp + 8]
mov dword [esi + eax*4 + 0x84], ecx
jmp 0x4b20e8
xor eax, eax
mov edx, dword [esp]
jmp 0x4b2002
cmp eax, edi
jb 0x4b1ff1
movzx eax, bh
lea ecx, [esi + ebp*8]
add ecx, 8
mov ebx, edx
lea edx, [esi + ebp*8]
sub eax, ebp
shl eax, 3
push eax
push edx
push ecx
call sub.VCRUNTIME140.dll_memmove
mov edx, ebx
add esp, 0xc
mov eax, dword [esp + 0x28]
mov dword [esi + ebp*8 + 4], eax
mov dword [esi + ebp*8], edi
add byte [esi + 0x78], 1
xor eax, eax
movzx ecx, byte [esp + 7]
movzx eax, al
test dl, 1
cmovne eax, ecx
and al, 1
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
movzx edx, bh
test bl, bl
mov dword [esp + 8], edx
je 0x4b2034
lea ecx, [ebp + 1]
jmp 0x4b205a
mov eax, dword [esp + 0x28]
add dword [esi + ebp*8 + 4], eax
jmp 0x4b2000
lea eax, [esi + ebp*4]
add eax, 0x88
lea edi, [ebp + 1]
lea ecx, [esi + ebp*4]
add ecx, 0x84
sub edx, ebp
shl edx, 2
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
mov ecx, edi
add esp, 0xc
mov edx, dword [esp]
mov edi, dword [esp + 0xc]
mov eax, dword [edi]
mov dword [esi + ebp*4 + 0x80], eax
mov eax, dword [edi + 4]
mov dword [esi + ecx*4 + 0x80], eax
test bl, bl
jne 0x4b2096
lea eax, [esi + ecx*8]
lea ecx, [esi + ebp*8]
mov edx, dword [esp + 8]
sub edx, ebp
shl edx, 3
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memmove
mov edx, dword [esp + 0xc]
add esp, 0xc
movsd xmm0, qword [edi + 8]
movsd qword [esi + ebp*8], xmm0
jmp 0x4b1ffc
lea eax, [esi + edi*4]
add eax, 0x88
lea edx, [esi + edi*4 + 0x84]
push ecx
push edx
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esp + 8]
mov dword [esi + edi*4 + 0x84], eax
lea eax, [esi + edi*8]
lea ecx, [esi + edi*8]
add ecx, 8
push ebx
push eax
push ecx
call sub.VCRUNTIME140.dll_memmove
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
add esp, 0xc
mov eax, edi
mov dword [esi + eax*8], ebp
mov edi, dword [esp + 0x10]
mov dword [esi + eax*8 + 4], edi
add byte [esi + 0x78], 1
add edi, dword [ecx + 0x7c]
add dword [esi + 0x7c], edi
mov al, 1
jmp 0x4b2002