Function at 0x100aaebd
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [ebp + 8]
mov eax, ecx
mov edx, dword [ebp + 0xc]
push ebx
push esi
shr eax, 0xa
xor esi, esi
inc esi
xor ebx, ebx
and eax, esi
mov dword [ebp + 8], eax
mov eax, edx
push edi
mov edi, dword [ebp + 0x10]
shr eax, 0xa
and eax, esi
mov dword [ebp - 4], eax
mov dword [edi], ebx
cmp dword [ebp + 0x1c], ebx
je 0x100ab0fb
mov eax, esi
shl eax, cl
cmp dword [ebp + 0x14], ebx
je 0x100ab02f
cmp dl, 8
jne 0x100aaf81
push esi
push eax
mov dword [ebp - 4], eax
call fcn.10005397
pop ecx
pop ecx
mov dword [ebp + 0xc], eax
mov dword [edi], eax
cmp dword [ebp - 4], ebx
jle 0x100ab358
mov edi, eax
cmp dword [ebp + 8], 0
je 0x100aaf58
mov edi, dword [ebp + 0x14]
mov edx, dword [edi + ebx*4]
mov eax, edx
mov edi, dword [ebp + 0xc]
shr eax, 8
movzx ecx, al
movzx eax, dl
shl eax, 8
or ecx, eax
mov eax, edx
shr eax, 0x10
shl ecx, 8
movzx eax, al
or ecx, eax
shr edx, 0x18
shl ecx, 8
or ecx, edx
mov dword [ebp + 0x10], ecx
jmp 0x100aaf61
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + ebx*4]
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x18]
lea eax, [ebp + 0x10]
push esi
push eax
push edi
push dword [ebp + 0x1c]
call fcn.100800ff
inc edi
inc ebx
mov dword [ebp + 0xc], edi
cmp ebx, dword [ebp - 4]
jl 0x100aaf1f
jmp 0x100ab358
push 4
push eax
mov dword [ebp + 0x10], eax
call fcn.10005397
pop ecx
pop ecx
mov dword [edi], eax
cmp dword [ebp + 0x10], ebx
jle 0x100ab358
cmp dword [ebp + 8], 0
mov eax, dword [ebp + 0x14]
je 0x100aafd3
mov edx, dword [eax + ebx*4]
mov eax, edx
shr eax, 8
movzx ecx, al
mov eax, dword [ebp + 0x14]
movzx eax, byte [eax + ebx*4]
shl eax, 8
or ecx, eax
mov eax, edx
shr eax, 0x10
shl ecx, 8
movzx eax, al
or ecx, eax
shr edx, 0x18
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc], ecx
jmp 0x100aafd9
mov eax, dword [eax + ebx*4]
mov dword [ebp + 0xc], eax
mov ecx, dword [ebp + 0x18]
lea eax, [ebp + 0xc]
push esi
push eax
push eax
push dword [ebp + 0x1c]
call fcn.100800ff
mov edx, dword [ebp + 0xc]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
shl eax, 8
or ecx, eax
mov eax, edx
shr eax, 0x10
shl ecx, 8
movzx eax, al
or ecx, eax
mov eax, edx
shr eax, 0x18
shl ecx, 8
or ecx, eax
cmp dword [ebp - 4], 0
mov eax, dword [edi]
cmovne edx, ecx
mov dword [eax + ebx*4], edx
inc ebx
cmp ebx, dword [ebp + 0x10]
jl 0x100aaf99
jmp 0x100ab358
push esi
push eax
mov dword [ebp + 8], eax
call fcn.10005397
pop ecx
pop ecx
mov ecx, eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0x10], ecx
cmp eax, 2
jne 0x100ab04f
mov word [ecx], 0xff00
jmp 0x100ab05d
mov edx, ebx
test eax, eax
jle 0x100ab05d
mov byte [edx + ecx], dl
inc edx
cmp edx, eax
jl 0x100ab055
cmp byte [ebp + 0xc], 8
jne 0x100ab079
push eax
push ecx
push ecx
push dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
call fcn.100800ff
mov eax, dword [ebp + 0x10]
jmp 0x100ab28a
push 4
push eax
call fcn.10005397
pop ecx
pop ecx
mov dword [edi], eax
cmp dword [ebp + 8], ebx
jle 0x100ab0ed
mov eax, dword [ebp + 0x10]
mov ecx, ebx
push esi
add eax, ebx
shl ecx, 2
push eax
mov eax, dword [edi]
add eax, ecx
mov ecx, dword [ebp + 0x18]
push eax
push dword [ebp + 0x1c]
call fcn.100800ff
cmp dword [ebp - 4], 0
mov eax, dword [edi]
lea eax, [eax + ebx*4]
je 0x100ab0e3
mov ecx, dword [eax]
mov dword [ebp + 0xc], eax
mov eax, ecx
shr eax, 8
movzx edx, al
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax]
shl eax, 8
or edx, eax
mov eax, ecx
shr eax, 0x10
shl edx, 8
movzx eax, al
or edx, eax
shr ecx, 0x18
mov eax, dword [ebp + 0xc]
shl edx, 8
or edx, ecx
jmp 0x100ab0e5
mov edx, dword [eax]
inc ebx
mov dword [eax], edx
cmp ebx, dword [ebp + 8]
jl 0x100ab08a
push dword [ebp + 0x10]
call fcn.1012ef4e
pop ecx
jmp 0x100ab358
cmp dword [ebp + 0x14], ebx
je 0x100ab25a
cmp dl, 8
jne 0x100ab1cd
mov eax, esi
shl eax, cl
push esi
push eax
mov dword [ebp + 0x1c], eax
call fcn.10005397
mov esi, dword [ebp + 0x1c]
pop ecx
pop ecx
mov dword [edi], eax
cmp dword [ebp + 8], ebx
je 0x100ab189
test esi, esi
jle 0x100ab358
mov edi, eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + ebx*4]
lea eax, [ebp + 0xb]
push eax
lea eax, [ebp + 0x1f]
push eax
lea eax, [ebp + 0xf]
push eax
push ecx
mov eax, ecx
shr eax, 8
push eax
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
push eax
push ecx
call fcn.1007f87e
movzx eax, byte [ebp + 0x1f]
add esp, 0x1c
movzx ecx, byte [ebp + 0xf]
xor edx, edx
imul ecx, ecx, 0x1e
imul eax, eax, 0x3b
push 0x64
add eax, ecx
movzx ecx, byte [ebp + 0xb]
imul ecx, ecx, 0xb
add eax, ecx
pop ecx
div ecx
mov byte [edi], al
inc edi
inc ebx
cmp ebx, esi
jl 0x100ab131
jmp 0x100ab358
test esi, esi
jle 0x100ab358
mov edi, eax
mov eax, dword [ebp + 0x14]
push 0x64
mov edx, dword [eax + ebx*4]
mov eax, edx
shr eax, 8
mov ecx, edx
shr ecx, 0x10
movzx eax, al
imul eax, eax, 0x3b
movzx ecx, cl
imul ecx, ecx, 0x1e
add eax, ecx
movzx ecx, dl
imul ecx, ecx, 0xb
xor edx, edx
add eax, ecx
pop ecx
div ecx
mov byte [edi], al
inc edi
inc ebx
cmp ebx, esi
jl 0x100ab193
jmp 0x100ab358
shl esi, cl
push 4
push esi
call fcn.10005397
mov edx, eax
mov eax, dword [ebp - 4]
pop ecx
pop ecx
mov dword [edi], edx
cmp eax, dword [ebp + 8]
jne 0x100ab1fc
mov ecx, esi
shl ecx, 2
push ecx
push dword [ebp + 0x14]
push edx
call fcn.10128bc0
add esp, 0xc
jmp 0x100ab358
test esi, esi
jle 0x100ab358
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax + ebx*4]
lea eax, [ebp + 0xb]
push eax
lea eax, [ebp + 0xf]
push eax
lea eax, [ebp + 0x1f]
push eax
push ecx
mov eax, ecx
shr eax, 8
push eax
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
push eax
push ecx
call fcn.1007f87e
movzx ecx, byte [ebp + 0x1f]
add esp, 0x1c
movzx eax, byte [ebp + 0xf]
or ecx, 0xffffff00
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp + 0xb]
shl ecx, 8
or ecx, eax
mov eax, dword [edi]
mov dword [eax + ebx*4], ecx
inc ebx
cmp ebx, esi
jl 0x100ab204
jmp 0x100ab358
cmp dl, 8
jne 0x100ab291
mov eax, esi
shl eax, cl
push esi
push eax
mov dword [ebp + 0x1c], eax
call fcn.10005397
pop ecx
pop ecx
mov ecx, dword [ebp + 0x1c]
cmp ecx, 2
jne 0x100ab27e
mov word [eax], 0xff00
jmp 0x100ab28a
test ecx, ecx
jle 0x100ab28a
mov byte [ebx + eax], bl
inc ebx
cmp ebx, ecx
jl 0x100ab282
mov dword [edi], eax
jmp 0x100ab358
shl esi, cl
push 4
push esi
call fcn.10005397
mov edx, eax
mov dword [edi], edx
pop ecx
pop ecx
cmp esi, 2
jne 0x100ab2cc
mov eax, dword [ebp + 8]
mov ecx, 0xff000000
test eax, eax
mov dword [ebp + 0x1c], 0xff
cmovne ecx, dword [ebp + 0x1c]
mov dword [edx], ecx
xor ecx, ecx
test eax, eax
mov eax, dword [edi]
setne cl
dec ecx
mov dword [eax + 4], ecx
jmp 0x100ab2fc
test esi, esi
jle 0x100ab2fc
mov edx, dword [ebp + 8]
mov ecx, ebx
mov dword [ebp + 0x1c], ecx
mov eax, 0xff
sub eax, ebx
test edx, edx
cmovne ecx, eax
mov eax, dword [edi]
mov dword [eax + ebx*4], ecx
inc ebx
mov ecx, dword [ebp + 0x1c]
add ecx, 0x10101
mov dword [ebp + 0x1c], ecx
cmp ebx, esi
jl 0x100ab2d8
xor ebx, ebx
mov eax, dword [ebp - 4]
cmp dword [ebp + 8], eax
je 0x100ab358
test esi, esi
jle 0x100ab358
mov eax, dword [edi]
mov ecx, dword [eax + ebx*4]
lea eax, [ebp + 0xb]
push eax
lea eax, [ebp + 0xf]
push eax
lea eax, [ebp + 0x1f]
push eax
push ecx
mov eax, ecx
shr eax, 8
push eax
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
push eax
push ecx
call fcn.1007f87e
movzx ecx, byte [ebp + 0x1f]
add esp, 0x1c
movzx eax, byte [ebp + 0xf]
or ecx, 0xffffff00
shl ecx, 8
or ecx, eax
movzx eax, byte [ebp + 0xb]
shl ecx, 8
or ecx, eax
mov eax, dword [edi]
mov dword [eax + ebx*4], ecx
inc ebx
cmp ebx, esi
jl 0x100ab308
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret