Function at 0x452263
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x20]
push edi
and dword [ebp - 8], 0
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [esi + 0x24]
add ecx, 8
push ecx
push 7
mov ecx, eax
pop edi
shr ecx, 8
and ecx, edi
push ecx
push 0x1f
pop ebx
shr eax, 0xb
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.0045292e
test eax, eax
je 0x4524b4
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0x20]
shl ecx, 0x1c
or ecx, 0x8000000
push ecx
mov ecx, dword [esi + 0x24]
add ecx, 8
push ecx
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.00452953
test eax, eax
je 0x45248a
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi + 0x20]
and ecx, edi
or ecx, 0xffffff80
shl ecx, 8
or ecx, dword [ebp + 0x10]
shl ecx, 0x10
push ecx
mov ecx, dword [esi + 0x24]
add ecx, 4
push ecx
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.00452953
test eax, eax
je 0x45248a
mov dword [ebp + 8], 0x186a0
mov eax, dword [esi + 0x20]
lea ecx, [ebp - 4]
push ecx
push dword [esi + 0x24]
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.0045292e
test eax, eax
je 0x45248a
mov eax, dword [ebp - 4]
test eax, 0x10000000
jne 0x452363
test eax, 0xa0000000
jne 0x452368
dec dword [ebp + 8]
jns 0x452326
mov ecx, eax
and ecx, 0xa0000000
cmp ecx, 0x80000000
je 0x45246e
mov dword [ebp + 8], 0x3e8
mov eax, dword [esi + 0x20]
lea ecx, [ebp - 0xc]
push ecx
mov ecx, dword [esi + 0x24]
add ecx, 8
push ecx
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.0045292e
test eax, eax
je 0x45248a
mov ecx, dword [ebp - 0xc]
mov eax, dword [esi + 0x20]
xor ecx, 0x8000000
push ecx
mov ecx, dword [esi + 0x24]
add ecx, 8
push ecx
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.00452953
test eax, eax
je 0x45248a
mov eax, dword [esi + 0x20]
lea ecx, [ebp - 4]
push ecx
push dword [esi + 0x24]
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.0045292e
test eax, eax
je 0x45248a
mov eax, dword [ebp - 4]
and eax, 0xb0000000
cmp eax, 0x10000000
je 0x452429
dec dword [ebp + 8]
jns 0x452383
mov dword [ebp + 8], 0x3e8
mov eax, dword [esi + 0x20]
lea ecx, [ebp - 4]
push ecx
push dword [esi + 0x24]
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.0045292e
test eax, eax
je 0x45248a
mov eax, dword [ebp - 4]
test eax, 0x10000000
jne 0x452469
test eax, 0xa0000000
jne 0x45246e
dec dword [ebp + 8]
jns 0x452430
mov ecx, eax
and ecx, 0xa0000000
cmp ecx, 0x80000000
jne 0x45248a
mov ecx, dword [ebp + 0x14]
mov byte [ecx], al
mov dword [ebp - 8], 1
push dword [ebp - 0x10]
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
add ecx, 8
push ecx
mov ecx, eax
shr ecx, 8
and ecx, edi
shr eax, 0xb
push ecx
and eax, ebx
push eax
movzx eax, byte [esi + 0x22]
push eax
mov ecx, esi
call fcn.00452953
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
leave
ret 0x10