Function at 0x417000
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
push edi
imul edi
dec esi
mov eax, 0xda
dec ebx
dec eax
mov esi, 0xff
bswap esi
rcl ebx, 0x5d
dec edx
dec edx
inc esi
sub ebx, 0xcb
sbb edx, 0xb6
and ebx, 0xd2
imul esi
bswap esi
dec edi
bswap esi
neg edi
inc ebx
not edx
dec eax
imul esi
neg esi
sbb ebx, 0x97
not esi
bswap eax
rol ebx, 0x7e
not eax
sbb esi, 0x3e
sbb edi, 0xe7
not esi
neg edx
bswap ebx
not edx
imul eax
rcr edi, 0xd7
sub eax, 0x7d
or eax, 0xa8
rol eax, 5
neg ebx
and edx, 0xcb
neg eax
add esi, 0xd5
rcr edi, 0x6e
and eax, 0x3a
rol eax, 0xbc
bswap esi
neg eax
add edx, 0xe2
push 0x100
lea ecx, [ebp - 0x1c]
call fcn.00401090
mov dword [ebp - 0x24], 0
jmp 0x4170b5
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x100
jge 0x4170d1
mov ecx, dword [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.004010f0
mov dl, byte [ebp - 0x24]
mov byte [eax], dl
jmp 0x4170ac
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x28], 0
jmp 0x4170ea
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x100
jge 0x41714d
mov ecx, dword [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.004010f0
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 0x417126
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.004010f0
push eax
mov ecx, dword [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.004010f0
push eax
call fcn.00401e80
add esp, 8
jmp 0x4170e1
imul edi
dec esi
mov eax, 0xda
dec ebx
dec eax
mov esi, 0xff
bswap esi
rcl ebx, 0x5d
dec edx
dec edx
inc esi
sub ebx, 0xcb
sbb edx, 0xb6
and ebx, 0xd2
imul esi
bswap esi
dec edi
bswap esi
neg edi
inc ebx
not edx
dec eax
imul esi
neg esi
sbb ebx, 0x97
not esi
bswap eax
rol ebx, 0x7e
not eax
sbb esi, 0x3e
sbb edi, 0xe7
not esi
neg edx
bswap ebx
not edx
imul eax
rcr edi, 0xd7
sub eax, 0x7d
or eax, 0xa8
rol eax, 5
neg ebx
and edx, 0xcb
neg eax
add esi, 0xd5
rcr edi, 0x6e
and eax, 0x3a
rol eax, 0xbc
bswap esi
neg eax
add edx, 0xe2
mov dword [ebp - 4], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], 0
jmp 0x4171fa
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 0xc]
jae 0x4172c5
mov ecx, dword [ebp - 4]
add ecx, 1
and ecx, 0x800000ff
jns 0x41721c
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.004010f0
movzx eax, byte [eax]
add eax, dword [ebp - 0x20]
and eax, 0x800000ff
jns 0x41723f
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.004010f0
push eax
mov edx, dword [ebp - 4]
push edx
lea ecx, [ebp - 0x1c]
call fcn.004010f0
push eax
call fcn.00401e80
add esp, 8
mov eax, dword [ebp - 4]
push eax
lea ecx, [ebp - 0x1c]
call fcn.004010f0
movzx esi, byte [eax]
mov ecx, dword [ebp - 0x20]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.004010f0
movzx edx, byte [eax]
add esi, edx
mov eax, esi
and eax, 0x800000ff
jns 0x417294
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.004010f0
movzx edx, byte [eax]
and edx, 0x11a3
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 0x4171f1
lea ecx, [ebp - 0x1c]
call fcn.004010d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret