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

Disassembly:
sub esp, 0x38
xor eax, eax
cmp dword [esp + 0x44], eax
push ebx
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov dword [esp + 8], eax
jbe 0x1000264c
mov ecx, dword [0x1004bd3c]
mov eax, dword [0x1004bd40]
mov edx, dword [0x1004bd48]
push ebp
push esi
push edi
mov edi, ecx
imul edi, eax
add edi, 2
imul edi, eax
lea esi, [ecx + edx]
lea ebp, [esi + 1]
mov dword [esp + 0x20], esi
mov esi, dword [0x1004bd38]
imul ebp, esi
sub edi, ebp
lea ebp, [ebx + edi*4]
add edi, ebp
mov dword [esp + 0x2c], edi
mov edi, edx
sub edi, eax
lea ebx, [ebx + edi*2]
add edi, ebx
mov ebx, dword [0x1004bd44]
mov dword [esp + 0x30], edi
lea edi, [edx + edx*2]
mov dword [esp + 0x10], edi
lea ebp, [ebx + ebx*2 + 3]
mov dword [esp + 0x1c], ebp
imul ebp, eax
mov edi, esi
sub edi, edx
add edi, 1
imul edi, ecx
lea edi, [edi + edi*2]
sub edi, ebp
add edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x4c]
add edi, ebp
mov dword [esp + 0x34], edi
mov edi, ebx
imul edi, ecx
imul edi, edx
sub edi, eax
add edi, 4
imul edi, esi
lea ebp, [ecx + 3]
imul ebp, edx
add edi, ebp
mov ebp, dword [esp + 0x4c]
sub edi, ecx
add edi, ebx
add edi, eax
lea edi, [ebp + edi*4]
mov ebp, ecx
sub ebp, edx
sub ebp, esi
add ebp, 2
imul ebp, eax
sub ebp, ebx
mov dword [esp + 0x38], edi
lea edi, [esi + esi]
mov ebx, 2
sub ebx, edi
imul ebx, edx
mov edi, ebx
mov ebx, dword [esp + 0x4c]
add edi, ebx
lea edi, [edi + ebp*2]
mov dword [esp + 0x18], edi
lea edi, [esi - 1]
imul edi, dword [0x1004bd44]
lea ebp, [eax + 3]
imul ebp, edx
add edi, ebp
lea ebp, [eax + eax]
sub edi, ebp
lea ebp, [esi + esi + 2]
imul ebp, ecx
add ebp, ebx
lea edi, [ebp + edi*2]
mov ebp, dword [0x1004bd44]
mov dword [esp + 0x40], edi
lea edi, [ebp + ebp]
sub edi, eax
add edi, ecx
lea ebx, [ebx + edi*2]
add edi, ebx
mov dword [esp + 0x3c], edi
lea edi, [esi*4]
mov ebx, edi
mov edi, 4
sub edi, ebx
imul edi, esi
lea ebx, [edx*4]
add edi, 4
imul edi, ebp
mov ebp, ebx
mov ebx, ecx
sub ebx, ebp
lea ebp, [eax + eax*2 - 3]
imul ebp, esi
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x44], ebx
add ebp, 6
imul ebp, esi
mov esi, dword [esp + 0x1c]
imul esi, edx
mov edx, dword [esp + 0x20]
mov ebx, eax
imul ebx, eax
add ebx, dword [0x1004bd44]
add esi, 3
imul esi, dword [0x1004bd44]
lea ebx, [ebx*4 - 4]
imul ebx, ecx
lea edx, [edx + edx*2 - 3]
imul edx, ecx
lea ecx, [eax + eax*2 + 3]
imul ecx, eax
add ebp, esi
mov esi, dword [esp + 0x24]
add ebp, edx
mov edx, dword [esp + 0x50]
add ebp, ecx
sub ebp, dword [esp + 0x10]
sub ebx, 4
imul ebx, eax
add ebp, edx
mov dword [esp + 0x20], ebp
mov ecx, esi
xor edx, edx
lea eax, [ecx + 1]
mov ecx, 0x64c1
div ecx
mov ebp, dword [esp + 0x38]
mov ecx, edx
mov edx, dword [esp + 0x2c]
movzx eax, byte [edx + ecx]
add eax, esi
xor edx, edx
mov esi, 0x64c1
div esi
mov eax, dword [esp + 0x30]
mov al, byte [eax + ecx]
mov esi, edx
mov edx, dword [esp + 0x34]
movzx edx, byte [edx + esi]
mov byte [ecx + ebp], dl
mov edx, dword [esp + 0x18]
mov byte [edx + esi], al
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + esi]
mov edx, dword [esp + 0x40]
movzx edx, byte [edx + ecx]
add eax, edx
xor edx, edx
mov ebp, 0x64c1
div ebp
mov eax, dword [esp + 0x4c]
mov ebp, dword [esp + 0x14]
add ebp, 1
mov dword [esp + 0x14], ebp
add edx, ebx
add edx, dword [esp + 0x44]
add edx, edi
movzx edx, byte [edx + eax]
mov eax, dword [esp + 0x20]
xor byte [eax + ebp - 1], dl
cmp ebp, dword [esp + 0x54]
jb 0x100025c1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret