Function at 0x10002a80
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x18
mov edx, dword [esp + 0x28]
push ebx
push ebp
push esi
mov ecx, dword [edx]
mov esi, dword [esp + 0x38]
push edi
mov edi, dword [esp + 0x30]
movzx eax, word [esi + ecx*8 + 0x1a]
mov dword [esp + 0x14], eax
lea eax, [edi + ecx*2]
movzx ebx, byte [ecx + eax]
mov eax, dword [0x10053424]
movzx eax, byte [edi + eax*4]
and ebx, eax
lea eax, [ecx + ecx*2]
mov eax, dword [edx + eax*4]
mov ecx, dword [0x10053444]
movzx edx, byte [0x1005340b]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
imul ebp, dword [eax + 0x4dc4], 0x1691
mov eax, dword [0x10053434]
movzx ecx, word [ecx + eax*2]
mov eax, dword [0x100533e4]
add ecx, dword [eax + edx*4 + 0x18]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
mov ecx, dword [0x10053418]
movzx eax, byte [eax + 0x1797]
sub ecx, eax
mov eax, dword [0x100533e0]
mov dword [esp + 0x10], ecx
movzx ecx, word [0x1005340c]
mov eax, dword [eax + 0x3128]
sub eax, 0xab5
mov dword [esp + 0x18], eax
mov eax, dword [0x1005344c]
inc eax
mov dword [0x1005344c], eax
mov dword [esp + 0x2c], eax
mov eax, dword [0x100533f4]
lea eax, [eax + eax*2]
movzx ebx, word [esi + eax*2]
mov esi, dword [0x10053400]
mov dword [esp + 0x3c], ebx
cmp esi, ecx
jge 0x10002bcc
mov edi, dword [esp + 0x38]
mov eax, dword [0x10053440]
add edi, 4
mov ebx, dword [esp + 0x30]
lea edi, [edi + esi*4]
cdq
lea edi, [edi + 4]
idiv ecx
mov eax, esi
inc esi
mov word [0x1005340c], dx
or eax, 0x849
movzx ecx, word [ebp]
xor edx, edx
div dword [ecx*8 + 0x1290]
mov dword [ecx*8 + 0x1290], edx
mov dl, byte [0x1005340a]
movzx eax, dl
inc dl
movzx ecx, byte [ebx + eax*4]
imul ecx, dword [edi - 4]
mov eax, dword [0x10053418]
shl eax, 4
add ecx, dword [eax]
mov eax, dword [0x10053440]
and eax, ecx
mov byte [0x1005340a], dl
movzx ecx, word [0x1005340c]
mov dword [0x10053440], eax
cmp esi, ecx
jl 0x10002b61
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov ecx, 0x1d1b
xor edx, edx
mov ecx, dword [ecx]
add ecx, 2
lea esi, [eax + ecx*2]
mov eax, 0x1c72
add esi, ecx
movzx ecx, byte [esi]
div ecx
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov eax, 0xffff
add word [ebp], ax
movzx ecx, word [ebp]
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + ecx*4]
movzx ecx, word [edx + ecx*4 + 8]
mov edx, 0x1d1b
imul ecx, eax
mov eax, dword [edx]
mov word [ebp + eax*2 + 0xe], cx
movzx eax, word [0x10053410]
mov eax, dword [eax*8 + 0xa799d6]
cmp eax, dword [0x10053428]
mov eax, dword [0x10053400]
jae 0x10002c59
cmp dword [0x100533e8], 0x1bd2
je 0x10002c59
cmp eax, 0xdd3
jle 0x10002c59
mov edx, dword [edx]
mov ecx, dword [0x10053404]
cmp ecx, dword [edx*4 + 0x1210]
ja 0x10002c71
mov ecx, dword [esp + 0x14]
movzx ecx, cx
cdq
mov esi, dword [0x10053438]
movzx ecx, byte [ecx + edi + 0xa]
idiv ecx
xor byte [esi + edi], al
mov eax, 0x1338
mov eax, dword [eax]
shl eax, 4
mov eax, dword [eax + 0x46bb26]
cmp eax, dword [0x10053434]
jle 0x10002c9c
movzx eax, word [ebp]
mov eax, dword [ebx + eax*4]
cmp eax, dword [0x100533f8]
jge 0x10002d75
mov eax, dword [0x10053448]
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0x6468]
mov dword [0x100533ec], eax
mov eax, dword [esp + 0x18]
movzx eax, word [eax]
movzx ebp, word [ecx + eax*2]
mov al, byte [0x1005340e]
inc al
mov dword [esp + 0x30], ebp
movzx ecx, al
mov byte [0x1005340e], al
cmp ebp, ecx
jb 0x10002d75
mov esi, dword [0x100533e4]
lea ebx, [ebp*4 + 0x8c]
mov eax, dword [0x10053430]
mov eax, dword [ebx + eax - 0x8c]
and eax, dword [0x10053418]
cdq
idiv ecx
mov eax, dword [esp + 0x20]
mov edi, eax
mov byte [0x1005340e], dl
cmp eax, dword [ebx + esi]
jae 0x10002d5a
mov ebp, dword [esp + 0x3c]
mov ecx, eax
shl ecx, 4
add ecx, dword [esp + 0x24]
nop word [eax + eax]
movzx eax, byte [0x1005340a]
lea ecx, [ecx + 0x10]
inc edi
lea esi, [eax*4]
mov eax, 0xa9e47577
mul dword [ecx - 0x10]
shr edx, 0xb
sub edx, dword [esi + ebp + 8]
mov dword [esi + ebp + 8], edx
mov esi, dword [0x100533e4]
cmp edi, dword [ebx + esi]
jb 0x10002d20
mov dl, byte [0x1005340e]
mov ebp, dword [esp + 0x30]
inc dl
inc ebp
movzx ecx, dl
add ebx, 4
mov dword [esp + 0x30], ebp
mov byte [0x1005340e], dl
cmp ebp, ecx
jge 0x10002ce3
mov eax, dword [0x100533f4]
pop edi
pop esi
inc eax
pop ebp
mov dword [0x100533f4], eax
pop ebx
add esp, 0x18
ret