Function at 0x10002ba6
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28
mov eax, dword [0x10017040]
xor eax, esp
mov dword [esp + 0x24], eax
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, dword [esi + 0x64]
test eax, eax
jne 0x10002b23
mov ecx, 0x49
xor edx, edx
mov al, byte [edx + str.l9kd_b]
xor al, cl
inc ecx
mov byte [esp + edx + 8], al
and ecx, 0x800000ff
jns 0x10002af4
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x19
jl 0x10002ad7
push esi
lea eax, [esp + 0xc]
mov byte [esp + 0x25], 0
push eax
push esi
call fcn.10001140
add esp, 0xc
mov eax, esi
pop edi
pop esi
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.1000f55e
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp + 0xc]
cmp ecx, 8
ja case.0x10002b2f.1
jmp dword [ecx*4 + 0x10002cbc]
add eax, dword [ebp + 0x10]
jmp 0x10002ca4
add eax, dword [ebp + 0x10]
cmp byte [eax], 0xe8
mov ecx, dword [eax + 1]
je 0x10002b9c
mov ecx, 0xeb
xor edx, edx
mov al, byte [edx + 0x10012640]
xor al, cl
inc ecx
mov byte [esp + edx + 8], al
and ecx, 0x800000ff
jns 0x10002b6d
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x20
jl 0x10002b50
push esi
lea eax, [esp + 0xc]
mov byte [esp + 0x2c], 0
push eax
push esi
call fcn.10001140
add esp, 0xc
mov eax, esi
pop edi
pop esi
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.1000f55e
mov esp, ebp
pop ebp
ret 0x10
add eax, 5
add eax, ecx
jmp 0x10002ca4
add eax, dword [ebp + 0x10]
cmp byte [eax], 0xe9
mov ecx, dword [eax + 1]
je 0x10002b9c
mov ecx, 0x87
xor edx, edx
nop dword [eax + eax]
mov al, byte [edx + 0x10012664]
xor al, cl
inc ecx
mov byte [esp + edx + 8], al
and ecx, 0x800000ff
jns 0x10002bdd
dec ecx
or ecx, 0xffffff00
inc ecx
inc edx
cmp edx, 0x1f
jl 0x10002bc0
push esi
lea eax, [esp + 0xc]
mov byte [esp + 0x2b], 0
push eax
push esi
call fcn.10001140
add esp, 0xc
mov eax, esi
pop edi
pop esi
mov ecx, dword [esp + 0x24]
xor ecx, esp
call fcn.1000f55e
mov esp, ebp
pop ebp
ret 0x10
cmp byte [eax], 0x55
jne 0x10002c21
cmp byte [eax + 1], 0x8b
jne 0x10002c21
cmp byte [eax + 2], 0xec
je 0x10002c24
dec eax
jmp case.0x10002b2f.4
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x10002ca4
mov edx, dword [ebp + 0x14]
lea ecx, [edx - 1]
cmp ecx, 3
ja 0x10002ca4
sub edx, 1
je 0x10002ca0
sub edx, 1
je 0x10002c4a
sub edx, 2
jne case.0x10002b2f.1
mov eax, dword [eax + edi]
jmp 0x10002ca4
movzx eax, word [eax + edi]
jmp 0x10002ca4
cmp byte [eax], 0x55
jne 0x10002c61
cmp byte [eax + 1], 0x8b
jne 0x10002c61
cmp byte [eax + 2], 0xec
je 0x10002c24
inc eax
jmp case.0x10002b2f.5
inc eax
cmp byte [eax], 0x55
jne case.0x10002b2f.6
cmp byte [eax + 1], 0x8b
jne case.0x10002b2f.6
cmp byte [eax + 2], 0xec
jne case.0x10002b2f.6
jmp 0x10002c24
dec eax
cmp byte [eax], 0x55
jne case.0x10002b2f.7
cmp byte [eax + 1], 0x8b
jne case.0x10002b2f.7
cmp byte [eax + 2], 0xec
jne case.0x10002b2f.7
jmp 0x10002c24
mov edi, dword [ebp + 0x10]
test edi, edi
je case.0x10002b2f.1
mov edx, dword [ebp + 0x14]
lea ecx, [edx - 1]
cmp ecx, 3
ja case.0x10002b2f.1
jmp 0x10002c36
movzx eax, byte [eax + edi]
mov dword [esi + 0x64], eax
mov ecx, dword [esp + 0x2c]
mov eax, esi
pop edi
pop esi
xor ecx, esp
call fcn.1000f55e
mov esp, ebp
pop ebp
ret 0x10