Function at 0x418a00
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
push edi
neg edi
bswap eax
bswap edx
dec esi
or edx, 0xc8
bswap esi
sbb esi, 0x51
add ebx, 0x93
dec edi
rol edx, 0xb
neg edx
not esi
neg esi
imul ebx
imul ebx
neg edx
sub eax, 0xa7
imul esi
bswap esi
bswap edi
imul eax
not edi
rol ebx, 0x67
sub esi, 0xf1
neg edi
dec edx
rol edx, 0xc6
and ebx, 0x12
sub edx, 0xa8
inc ebx
neg edx
rol esi, 0x88
neg eax
mov edx, 0xec
dec ebx
imul esi
or esi, 0xdd
inc esi
bswap eax
imul ebx
inc esi
sbb eax, 0xba
neg esi
imul edi
not esi
rcr eax, 0xba
add esi, 0xc3
rcr edx, 0xac
and edx, 0x37
or eax, 8
push 0x100
lea ecx, [ebp - 0x1c]
call fcn.004010c0
mov dword [ebp - 0x24], 0
jmp 0x418ab0
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x100
jge 0x418acc
mov ecx, dword [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00401120
mov dl, byte [ebp - 0x24]
mov byte [eax], dl
jmp 0x418aa7
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x28], 0
jmp 0x418ae5
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x100
jge 0x418b48
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 0x418b21
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 0x418adc
neg edi
bswap eax
bswap edx
dec esi
or edx, 0xc8
bswap esi
sbb esi, 0x51
add ebx, 0x93
dec edi
rol edx, 0xb
neg edx
not esi
neg esi
imul ebx
imul ebx
neg edx
sub eax, 0xa7
imul esi
bswap esi
bswap edi
imul eax
not edi
rol ebx, 0x67
sub esi, 0xf1
neg edi
dec edx
rol edx, 0xc6
and ebx, 0x12
sub edx, 0xa8
inc ebx
neg edx
rol esi, 0x88
neg eax
mov edx, 0xec
dec ebx
imul esi
or esi, 0xdd
inc esi
bswap eax
imul ebx
inc esi
sbb eax, 0xba
neg esi
imul edi
not esi
rcr eax, 0xba
add esi, 0xc3
rcr edx, 0xac
and edx, 0x37
or eax, 8
mov dword [ebp - 4], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], 0
jmp 0x418bf0
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 0xc]
jae 0x418cbb
mov ecx, dword [ebp - 4]
add ecx, 1
and ecx, 0x800000ff
jns 0x418c12
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 0x418c35
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 0x418c8a
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 0x418be7
lea ecx, [ebp - 0x1c]
call fcn.00401100
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret