Function at 0x418a00
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
push edi
bswap edx
imul ebx
neg edx
rcl eax, 0xb1
inc eax
bswap edi
not eax
or eax, 0x69
sub esi, 0x1e
not eax
bswap esi
bswap eax
and esi, 0x50
rcl esi, 0xfe
ror esi, 0xc5
neg edx
dec edx
rcl esi, 0xf2
not edx
rcr edi, 0x8e
ror ebx, 0x60
bswap eax
sbb edx, 0xf4
inc esi
sub esi, 0x4e
rcl esi, 0x3a
mov esi, 0x54
not ebx
imul edi
imul edx
not edx
sub esi, 0x68
bswap edi
or edi, 0x29
not eax
dec esi
add edx, 0xc5
bswap esi
bswap esi
inc esi
not esi
ror edx, 0x15
neg eax
neg ebx
neg edi
rcl edi, 0x43
sub eax, 0x14
not eax
neg ebx
neg eax
push 0x100
lea ecx, [ebp - 0x1c]
call fcn.004010c0
mov dword [ebp - 0x24], 0
jmp 0x418aa2
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x100
jge 0x418abe
mov ecx, dword [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00401120
mov dl, byte [ebp - 0x24]
mov byte [eax], dl
jmp 0x418a99
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x28], 0
jmp 0x418ad7
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x100
jge 0x418b3a
mov ecx, dword [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00401120
movzx ecx, byte [eax]
add ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x28]
xor edx, edx
div dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
movzx edx, byte [eax + edx]
add ecx, edx
and ecx, 0x800000ff
jns 0x418b13
dec ecx
or ecx, 0xffffff00
inc ecx
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00401120
push eax
mov ecx, dword [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00401120
push eax
call fcn.00401fb0
add esp, 8
jmp 0x418ace
bswap edx
imul ebx
neg edx
rcl eax, 0xb1
inc eax
bswap edi
not eax
or eax, 0x69
sub esi, 0x1e
not eax
bswap esi
bswap eax
and esi, 0x50
rcl esi, 0xfe
ror esi, 0xc5
neg edx
dec edx
rcl esi, 0xf2
not edx
rcr edi, 0x8e
ror ebx, 0x60
bswap eax
sbb edx, 0xf4
inc esi
sub esi, 0x4e
rcl esi, 0x3a
mov esi, 0x54
not ebx
imul edi
imul edx
not edx
sub esi, 0x68
bswap edi
or edi, 0x29
not eax
dec esi
add edx, 0xc5
bswap esi
bswap esi
inc esi
not esi
ror edx, 0x15
neg eax
neg ebx
neg edi
rcl edi, 0x43
sub eax, 0x14
not eax
neg ebx
neg eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], 0
jmp 0x418bd4
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 0xc]
jae 0x418c9f
mov ecx, dword [ebp - 4]
add ecx, 1
and ecx, 0x800000ff
jns 0x418bf6
dec ecx
or ecx, 0xffffff00
inc ecx
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
push edx
lea ecx, [ebp - 0x1c]
call fcn.00401120
movzx eax, byte [eax]
add eax, dword [ebp - 0x20]
and eax, 0x800000ff
jns 0x418c19
dec eax
or eax, 0xffffff00
inc eax
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00401120
push eax
mov edx, dword [ebp - 4]
push edx
lea ecx, [ebp - 0x1c]
call fcn.00401120
push eax
call fcn.00401fb0
add esp, 8
mov eax, dword [ebp - 4]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00401120
movzx esi, byte [eax]
mov ecx, dword [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00401120
movzx edx, byte [eax]
add esi, edx
mov eax, esi
and eax, 0x800000ff
jns 0x418c6e
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x2d], al
movzx ecx, byte [ebp - 0x2d]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00401120
movzx edx, byte [eax]
and edx, 0x1045
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x2c]
movzx ecx, byte [eax]
xor ecx, edx
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x2c]
mov byte [edx], cl
jmp 0x418bcb
lea ecx, [ebp - 0x1c]
call fcn.00401100
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret