Function at 0x4b702b
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x56420c
push esi
mov esi, dword [0x7e4b836c]
push edi
cmp dword [esi + 0x810], 0
je 0x4b70be
mov edi, dword [esi + 8]
cmp edi, 0x400
jge 0x4b7088
mov edx, edi
shl edx, 0xc
mov dword [ebp + 8], edx
mov al, byte [esi + edi + 0x10]
movzx ecx, al
cmp ecx, ebx
jb 0x4b7076
cmp al, 0xff
jne 0x4b71b9
add edx, 0x1000
inc edi
cmp edx, 0x400000
mov dword [ebp + 8], edx
jl 0x4b7063
xor edi, edi
cmp dword [esi + 8], edi
jle 0x4b70be
mov dword [ebp + 8], edi
mov al, byte [esi + edi + 0x10]
movzx ecx, al
cmp ecx, ebx
jb 0x4b70b1
cmp al, 0xff
je 0x4b70b1
movzx eax, byte [edi + esi + 0x410]
cmp eax, ebx
ja 0x4ec396
add dword [ebp + 8], 0x1000
inc edi
cmp edi, dword [esi + 8]
jl 0x4b7092
mov esi, dword [esi]
cmp esi, dword [0x7e4b836c]
jne 0x4b7047
mov eax, 0x7e4b8370
mov esi, eax
cmp dword [esi + 0x810], 0
je 0x539b6e
cmp dword [esi + 0xc], 0xffffffff
je 0x539b6e
mov edi, dword [esi + 0xc]
lea eax, [edi + 0x10]
mov ecx, 0x400
cmp eax, ecx
jge 0x564213
inc edi
cmp edi, eax
mov dword [ebp - 4], edi
jge 0x4b710c
cmp byte [esi + edi + 0x10], 0xff
je 0x4b70fd
mov ecx, dword [esi + 0x810]
mov eax, dword [esi + 0xc]
mov dword [ebp - 8], ecx
push 4
mov dword [ebp + 8], eax
mov ecx, edi
sub ecx, eax
push 0x1000
shl eax, 0xc
add eax, dword [esi + 0x810]
shl ecx, 0xc
push ecx
push eax
call dword [0x7e211324]
mov ecx, dword [ebp + 8]
shl ecx, 0xc
add ecx, dword [ebp - 8]
cmp eax, ecx
jne 0x539bb2
mov ecx, dword [ebp + 8]
mov eax, ecx
shl eax, 0xc
add eax, dword [ebp - 8]
cmp ecx, edi
mov dword [ebp - 0xc], ecx
mov dword [ebp + 8], eax
jge 0x508c63
lea edx, [eax + 8]
mov dword [eax], edx
xor eax, eax
mov dword [edx - 4], 0xf0
push 0x3c
mov edi, edx
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0xc]
mov dword [edx + 0xf0], 0x486253ff
mov dword [edx + 0xf4], 0x7e4b8370
mov ecx, 0x1000
add dword [ebp + 8], ecx
mov byte [esi + eax + 0x10], 0xf0
mov byte [eax + esi + 0x410], 0xf1
inc eax
add edx, ecx
cmp eax, dword [ebp - 4]
mov dword [ebp - 0xc], eax
jge 0x508c60
mov eax, dword [ebp + 8]
jmp 0x4b7167
movzx eax, byte [edi + esi + 0x410]
cmp eax, ebx
jbe 0x4b7076
mov eax, dword [esi + 0x810]
push ebx
push ecx
add eax, edx
push eax
call int.004b71fb
add esp, 0xc
test eax, eax
je 0x4bba5c
sub byte [edi + esi + 0x10], bl
mov dword [0x7e4b836c], esi
mov dword [esi + 8], edi
pop edi
pop esi
pop ebx
leave
ret
xor dh, bh
fdivp st(1)
jle 0x4bba8a
js 0x4bbaba
in eax, dx
jbe 0x4bbaa7
insd dword es:[di], dx
push edx
loopne 0x4bbadb
loopne 0x4bba80
aas
imul eax, dword [edi + 0x4e66e86a], 0x56
imul esp, eax, 0x7f
int3
clc
lea ebx, [edx - 0x14]
and al, 0x3e
mov ecx, 0xb58e162e
mov ch, 0x33
popfd
mov ch, 0x9c
dec ebx
invalid
invalid
mov ah, 0x36
fsub dword [eax]
mov esi, 0x302a0934
adc ch, byte [esp + eax*8]
cmpsb byte [esi], byte es:[edi]
outsd dx, dword [esi]
xchg ebx, eax
inc ecx
ror byte [ebx], 1
enter 0xbd0, 0xfffffffffffffff7
ror byte [ebx], 1
test dword [edx - 0x71ae37f7], 0x46450202
or byte [ecx], 0xc8
push ecx
mov es, word [edx]
add al, byte [ebp + 0x46]
sub eax, 0x28b8e904
adc al, 0x94
mov ebp, 0xd2f89f09
inc edx
invalid
push edi
add ah, byte [esi - 0x1d29c4d0]
push eax
sal byte [ebx + 0x22], 1
shr byte [eax + 0x29], cl
jno 0x4bbaee
dec ebp
int3
test al, 0x3f
sbb al, 0xbf
xchg ebp, eax
jmp 0x4bbac3