Function at 0x10001cb0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x4c
xor eax, eax
cmp dword [esp + 0x58], eax
mov dword [esp + 0x10], eax
mov dword [esp + 8], eax
jbe 0x10002007
mov eax, dword [0x1002ffbc]
mov edx, dword [0x1002ffb4]
mov ecx, dword [0x1002ffc0]
push ebx
mov ebx, dword [0x1002ffb8]
push ebp
push esi
lea esi, [eax + eax*2]
mov ebp, 0xbe91327
sub ebp, esi
mov esi, ebx
imul ebp, eax
imul esi, ebx
push edi
lea edi, [edx + edx]
add esi, edi
mov dword [esp + 0x54], edi
lea edi, [ecx + ecx*2]
add esi, edi
lea esi, [esi + esi*2]
sub ebp, esi
add ebp, 1
mov esi, edx
imul esi, dword [0x1002ffac]
mov dword [esp + 0x28], ebp
mov ebp, dword [0x1002ffb0]
add esi, ebp
imul esi, eax
imul esi, eax
add esi, esi
mov dword [esp + 0x2c], esi
mov edi, ecx
imul edi, edi, 0xbe91321
mov esi, 3
sub esi, edi
imul esi, ecx
mov dword [esp + 0x38], esi
mov edi, dword [esp + 0x60]
mov esi, eax
imul esi, esi, 0xbe9131f
add esi, edi
mov dword [esp + 0x30], esi
mov edi, eax
imul edi, eax
mov esi, edi
imul esi, ebp
imul esi, dword [0x1002ffac]
lea esi, [esi + esi*2]
mov dword [esp + 0x34], esi
mov esi, ecx
sub esi, ebx
mov dword [esp + 0x10], esi
mov esi, ebx
imul esi, eax
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x10]
sub esi, eax
sub esi, 2
imul esi, dword [0x1002ffb0]
mov ebp, ebx
imul ebx, edx
imul ebp, ecx
sub esi, ebp
sub esi, edi
sub esi, edx
add esi, ebx
add esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x60]
mov ebp, ecx
imul ebp, ebp, 0xbe91324
add esi, eax
add esi, dword [0x1002ffac]
add ebx, esi
lea esi, [ebx + esi*2]
mov ebx, dword [0x1002ffb0]
add ebp, esi
mov esi, dword [0x1002ffb8]
imul esi, ebx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x1c], esi
mov ebp, edx
imul ebp, ebp, 0xbe9131f
mov dword [esp + 0x14], ebp
mov ebp, ebx
imul ebp, ebx
imul ebp, edx
mov ebx, eax
imul ebx, ecx
imul ebx, edx
sub ebx, ebp
imul ebx, ecx
mov ebp, esi
mov esi, dword [0x1002ffac]
imul ebp, esi
add ebx, ebp
sub ebx, edx
add ebx, 2
imul ebx, dword [0x1002ffb0]
lea ebp, [ecx + 1]
imul ebp, esi
add ebx, ebp
sub ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x60]
sub ebx, dword [0x1002ffb8]
add ebx, eax
add ebx, ebp
mov dword [esp + 0x40], ebx
mov ebx, dword [0x1002ffb8]
add ebx, 1
imul ebx, edx
mov ebp, esi
imul ebp, esi
lea ebx, [ebx + esi - 3]
imul ebp, ebp, 0xbe91321
imul ebx, eax
add ebp, 3
imul ebp, dword [0x1002ffb0]
lea ebx, [ebx + ebx*2]
add ebx, ebp
mov ebp, dword [esp + 0x10]
lea esi, [ecx + ecx*2]
sub ebx, esi
mov esi, dword [esp + 0x60]
add ebx, esi
mov dword [esp + 0x44], ebx
lea esi, [esi + ebp*2]
add esi, ebp
mov ebp, dword [0x1002ffb0]
imul ebp, ebp, 0xbe9131e
lea ebx, [edi + edi*2 - 3]
imul ebx, eax
add esi, ebx
mov ebx, dword [esp + 0x14]
add ebp, esi
add ebx, edx
lea ebx, [ebx + edx*2]
lea esi, [eax + eax]
sub esi, dword [0x1002ffb8]
mov dword [esp + 0x10], ebp
lea ebx, [ebx + esi*4]
mov esi, dword [esp + 0x60]
add ebx, esi
mov dword [esp + 0x4c], ebx
mov ebx, ecx
imul ebx, edx
add ebx, ebx
add ebx, ebx
mov ebp, 4
sub ebp, ebx
imul ebp, edx
mov ebx, ecx
imul ebx, ebx, 0xbe9131e
sub ebp, ebx
add ebp, esi
mov dword [esp + 0x48], ebp
mov ebp, dword [0x1002ffb0]
mov esi, ebp
imul esi, esi, 0xbe91320
mov ebx, 2
sub ebx, esi
mov dword [esp + 0x14], esi
imul ebx, ecx
imul ebp, ebp, 0xbe91321
imul edi, edx
mov esi, 3
sub esi, ebp
mov ebp, dword [0x1002ffb8]
imul esi, eax
mov dword [esp + 0x58], esi
mov esi, dword [0x1002ffac]
sub esi, ebp
lea esi, [esi + esi*2]
mov dword [esp + 0x50], esi
mov esi, dword [0x1002ffac]
imul edi, esi
sub edi, dword [esp + 0x1c]
add esi, 1
imul esi, ecx
lea edi, [edi*4 + 0xbe91316]
imul edi, eax
lea eax, [edx*4]
mov edx, 4
add esi, ebp
sub edx, eax
imul edx, dword [0x1002ffb0]
add esi, esi
add esi, esi
sub edi, esi
add edi, dword [esp + 0x64]
add edx, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x1c], edx
mov esi, edi
mov edi, edi
mov eax, dword [esp + 0x28]
add eax, esi
cdq
mov esi, 0x4781
idiv esi
lea eax, [ecx + ecx]
mov ebp, dword [esp + 0x44]
sub edx, eax
sub edx, dword [esp + 0x2c]
sub edx, dword [esp + 0x14]
mov esi, edx
mov edx, dword [esp + 0x30]
movzx eax, byte [edx + esi]
add eax, edi
cdq
mov edi, 0x4781
idiv edi
mov eax, dword [esp + 0x3c]
mov al, byte [eax + esi]
add edx, dword [esp + 0x34]
add edx, dword [esp + 0x38]
mov edi, edx
mov edx, dword [esp + 0x40]
movzx edx, byte [edx + edi]
mov byte [esi + ebp], dl
mov edx, dword [esp + 0x10]
mov byte [edx + edi], al
mov eax, dword [esp + 0x48]
movzx eax, byte [eax + esi]
mov edx, dword [esp + 0x4c]
movzx edx, byte [edx + edi]
add eax, edx
cdq
mov ebp, 0x4781
idiv ebp
mov eax, dword [esp + 0x60]
mov ebp, dword [esp + 0x18]
add ebp, 1
mov dword [esp + 0x18], ebp
add edx, dword [esp + 0x50]
add edx, dword [esp + 0x54]
add edx, dword [esp + 0x58]
add edx, ebx
movzx edx, byte [edx + eax]
mov eax, dword [esp + 0x1c]
xor byte [eax + ebp - 1], dl
cmp ebp, dword [esp + 0x68]
jb 0x10001f60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret