Function at 0x1008aec3
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x102db678]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [ebp - 0x24], eax
push esi
push edi
xor eax, eax
mov dword [ebp - 0x28], ebx
lea edi, [ebx + 0x38]
mov ecx, dword [edi]
mov dword [ebp - 0x30], edi
test ecx, ecx
je 0x1008aef7
cmp dword [ecx + 0x18], 0xa
sete al
inc eax
mov ecx, dword [ebx + 0x34]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.1004e213
push ecx
push ecx
mov edx, esp
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [edx], eax
lea eax, [ebp - 0x18]
push eax
mov dword [edx + 4], ecx
call fcn.100b5570
mov ecx, dword [ebp - 0x18]
add esp, 0x10
test ecx, ecx
jne 0x1008af2f
mov eax, dword [ebp - 0x24]
and dword [eax], ecx
jmp 0x1008b311
call fcn.100b5aa6
test al, al
je 0x1008b2f8
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x14]
push eax
call fcn.100b593c
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebx + 0xc]
jl 0x1008b2f8
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebx + 0x10]
jl 0x1008b2f8
mov esi, dword [edi]
mov eax, esi
mov dword [ebp - 0x3c], esi
test esi, esi
je 0x1008af71
inc dword [esi + 4]
mov eax, dword [ebx + 0x38]
push eax
lea eax, [ebp - 0x14]
mov byte [ebp - 0x20], 0
push eax
mov byte [ebp - 0x19], 0
call fcn.1008a542
pop ecx
pop ecx
xor ecx, ecx
sub eax, ecx
je 0x1008b2ee
dec eax
push 3
pop edx
sub eax, 1
je 0x1008afa6
sub eax, 1
je 0x1008afc8
sub eax, 1
jne 0x1008afb5
mov byte [ebp - 0x19], 1
push ecx
mov ecx, edi
mov byte [ebp - 0x20], 1
call fcn.10026226
push 3
pop edx
mov eax, dword [ebp - 0xc]
test esi, esi
jne 0x1008afbf
mov dword [ebx + 0x48], eax
cmp eax, 1
jne 0x1008aff6
push 8
jmp 0x1008b016
push edx
lea eax, [ebp - 0x38]
push eax
call fcn.10051386
pop ecx
pop ecx
mov ecx, dword [eax]
and dword [eax], 0
push ecx
mov ecx, edi
call fcn.10026226
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x1008afb2
sub dword [ecx + 4], 1
jne 0x1008afb2
mov eax, dword [ecx]
push 1
call dword [eax]
jmp 0x1008afb2
cmp eax, edx
jbe 0x1008b014
cmp eax, 4
jne 0x1008b003
push 0x20
jmp 0x1008b016
imul eax, dword [ebp - 0x14]
xor edx, edx
push 3
pop ecx
add eax, 2
div ecx
mov dword [ebp - 0x14], eax
push 0x18
lea eax, [ebp - 0x34]
pop edi
push eax
call fcn.10025ae5
pop ecx
push edi
push dword [ebp - 0x10]
mov edi, dword [ebp - 0x34]
mov ecx, edi
push dword [ebp - 0x14]
call fcn.10043ed2
test al, al
jne 0x1008b06d
mov ebx, dword [ebp - 0x24]
and dword [ebx], 0
test edi, edi
je 0x1008b04e
sub dword [edi + 4], 1
jne 0x1008b04e
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax]
test esi, esi
je 0x1008b2fe
sub dword [esi + 4], 1
jne 0x1008b2fe
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
jmp 0x1008b2fe
push 0xffffffffffffffff
mov ecx, edi
call fcn.10042cea
push dword [ebp - 0x20]
mov eax, dword [edi]
mov ecx, edi
push dword [edi + 0x14]
mov ebx, dword [ebp - 0x18]
call dword [eax + 4]
push eax
mov ecx, ebx
call fcn.100b55c6
test al, al
jne 0x1008b09a
mov ebx, dword [ebp - 0x24]
and dword [ebx], 0
jmp 0x1008b040
cmp byte [ebp - 0x19], 0
je 0x1008b287
lea eax, [ebp - 0x20]
push eax
call fcn.10025ae5
pop ecx
mov ecx, dword [ebp - 0x20]
push 0x18
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call fcn.10043ed2
test al, al
jne 0x1008b0ea
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x20]
and dword [ebx], 0
test eax, eax
je 0x1008b040
sub dword [eax + 4], 1
jne 0x1008b040
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
jmp 0x1008b040
push str.SMaskInData
lea ecx, [ebp - 0x2c]
call fcn.10026f05
lea eax, [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0x30]
call fcn.1002b404
lea ecx, [ebp - 0x2c]
mov ebx, eax
call fcn.1002716d
cmp ebx, 1
jne 0x1008b21f
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov dword [edx + 0x84], eax
imul eax, ecx
mov dword [edx + 0x80], ecx
add edx, 0x88
mov ecx, edx
mov dword [ebp - 0x50], edx
push eax
call fcn.1008c260
xor ebx, ebx
mov dword [ebp - 0x38], ebx
cmp dword [ebp - 0x10], ebx
jbe 0x1008b277
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x30], 0xff
mov eax, dword [edi]
mov ecx, edi
push ebx
call dword [eax + 8]
mov edx, dword [esi]
mov ecx, esi
push ebx
mov dword [ebp - 0x2c], eax
call dword [edx + 8]
and dword [ebp - 0x4c], 0
cmp dword [ebp - 0x14], 0
jbe 0x1008b210
mov esi, dword [ebp - 0x2c]
add eax, 2
mov edi, dword [ebp - 0x50]
inc esi
mov dword [ebp - 0x48], eax
mov bl, byte [esi + 2]
lea eax, [ebp - 0x19]
push eax
mov ecx, edi
mov byte [ebp - 0x19], bl
call fcn.10075b16
movzx edx, bl
not bl
movzx eax, bl
mov ebx, 0xff
imul ecx, eax, 0xff
movzx eax, byte [esi]
lea esi, [esi + 4]
imul eax, edx
mov dword [ebp - 0x2c], edx
xor edx, edx
push 3
mov dword [ebp - 0x40], ecx
add eax, ecx
div ebx
xor edx, edx
mov bl, al
movzx eax, byte [esi - 3]
imul eax, dword [ebp - 0x2c]
add eax, ecx
mov ecx, 0xff
div ecx
xor edx, edx
mov cl, al
movzx eax, byte [esi - 5]
imul eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x40]
div dword [ebp - 0x30]
mov edx, dword [ebp - 0x48]
mov byte [edx - 2], al
pop eax
mov byte [edx - 1], bl
mov byte [edx], cl
add edx, eax
mov eax, dword [ebp - 0x4c]
inc eax
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], eax
cmp eax, dword [ebp - 0x14]
jb 0x1008b188
mov edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x20]
mov ebx, dword [ebp - 0x38]
inc ebx
mov dword [ebp - 0x38], ebx
cmp ebx, dword [ebp - 0x10]
jb 0x1008b15a
jmp 0x1008b274
xor ebx, ebx
cmp dword [ebp - 0x10], ebx
jbe 0x1008b277
mov esi, dword [ebp - 0x20]
mov eax, dword [edi]
mov ecx, edi
push ebx
call dword [eax + 8]
mov edx, dword [esi]
mov ecx, esi
push ebx
mov dword [ebp - 0x30], eax
call dword [edx + 8]
and dword [ebp - 0x40], 0
mov edx, eax
cmp dword [ebp - 0x14], 0
jbe 0x1008b26e
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x40]
push 3
pop esi
mov cx, word [eax]
lea eax, [eax + 4]
mov word [edx], cx
mov cl, byte [eax - 2]
mov byte [edx + 2], cl
add edx, esi
inc edi
cmp edi, dword [ebp - 0x14]
jb 0x1008b251
mov edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x20]
inc ebx
cmp ebx, dword [ebp - 0x10]
jb 0x1008b229
mov esi, dword [ebp - 0x3c]
push dword [ebp - 0x20]
lea ecx, [ebp - 0x34]
call fcn.10026226
mov edi, dword [ebp - 0x34]
jmp 0x1008b2da
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
test eax, eax
je 0x1008b2da
cmp dword [eax + 0x18], 0xa
mov ebx, dword [ebp - 0x28]
jne 0x1008b2dd
cmp dword [ebx + 0x40], 8
jae 0x1008b2dd
and dword [ebp - 0x30], 0
push 8
pop eax
sub eax, dword [ebx + 0x40]
cmp dword [ebp - 0x10], 0
mov dword [ebp - 0x40], eax
jbe 0x1008b2dd
mov esi, dword [ebp - 0x30]
mov ebx, eax
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 8]
xor edx, edx
cmp dword [ebp - 0x14], edx
jbe 0x1008b2d1
mov cl, bl
shr byte [eax], cl
inc eax
inc edx
cmp edx, dword [ebp - 0x14]
jb 0x1008b2c6
inc esi
cmp esi, dword [ebp - 0x10]
jb 0x1008b2b7
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x28]
mov dword [ebx + 0x40], 8
mov ebx, dword [ebp - 0x24]
mov dword [ebx], edi
jmp 0x1008b04e
mov ebx, dword [ebp - 0x24]
mov dword [ebx], ecx
jmp 0x1008b04e
mov ebx, dword [ebp - 0x24]
and dword [ebx], 0
cmp dword [ebp - 0x18], 0
je 0x1008b30f
push dword [ebp - 0x18]
lea ecx, [ebp - 0x18]
call fcn.1008914f
mov eax, ebx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101452d9
leave
ret 4