Function at 0x417000
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
push edi
sub edi, 0xd5
add edi, 0xfc
and ebx, 0xde
bswap esi
dec edx
neg edi
rcr edx, 0x22
and esi, 0x9a
inc edx
or eax, 0xe9
sbb edi, 4
rol edi, 0x52
rcl ebx, 0x80
mov edi, 0x8b
sub edi, 0x21
not eax
and edx, 0x96
sub edi, 0x4c
neg esi
inc esi
inc ebx
add ebx, 0xf6
sbb edx, 0x5c
ror edi, 0x79
rol ebx, 0xec
inc edx
bswap edi
rol eax, 0x38
sbb eax, 0x43
rcr edi, 0x9a
sub ebx, 0x95
bswap edx
dec ebx
sbb edi, 0xbd
dec edx
inc esi
rol esi, 0xc
inc esi
ror esi, 0x21
not esi
rcr eax, 0x5f
mov esi, 0xcb
imul edi
bswap esi
rol ebx, 0x2e
bswap edx
dec esi
imul edx
rcl edx, 0x78
rol edi, 0xf7
push 0x100
lea ecx, [ebp - 0x1c]
call fcn.00401090
mov dword [ebp - 0x24], 0
jmp 0x4170bd
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x100
jge 0x4170d9
mov ecx, dword [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.004010f0
mov dl, byte [ebp - 0x24]
mov byte [eax], dl
jmp 0x4170b4
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x28], 0
jmp 0x4170f2
mov eax, dword [ebp - 0x28]
add eax, 1
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x100
jge 0x417155
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 0x41712e
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 0x4170e9
sub edi, 0xd5
add edi, 0xfc
and ebx, 0xde
bswap esi
dec edx
neg edi
rcr edx, 0x22
and esi, 0x9a
inc edx
or eax, 0xe9
sbb edi, 4
rol edi, 0x52
rcl ebx, 0x80
mov edi, 0x8b
sub edi, 0x21
not eax
and edx, 0x96
sub edi, 0x4c
neg esi
inc esi
inc ebx
add ebx, 0xf6
sbb edx, 0x5c
ror edi, 0x79
rol ebx, 0xec
inc edx
bswap edi
rol eax, 0x38
sbb eax, 0x43
rcr edi, 0x9a
sub ebx, 0x95
bswap edx
dec ebx
sbb edi, 0xbd
dec edx
inc esi
rol esi, 0xc
inc esi
ror esi, 0x21
not esi
rcr eax, 0x5f
mov esi, 0xcb
imul edi
bswap esi
rol ebx, 0x2e
bswap edx
dec esi
imul edx
rcl edx, 0x78
rol edi, 0xf7
mov dword [ebp - 4], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], 0
jmp 0x41720a
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp + 0xc]
jae 0x4172d5
mov ecx, dword [ebp - 4]
add ecx, 1
and ecx, 0x800000ff
jns 0x41722c
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 0x41724f
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 0x4172a4
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 0x417201
lea ecx, [ebp - 0x1c]
call fcn.004010d0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret