Function at 0x9078876
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x90a4da6
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x2958
call fcn.0909ff00
mov eax, dword [0x90dee5c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x2948], esi
mov edi, dword [ebx + 8]
push 0
mov dword [ebp - 0x2944], edi
mov eax, dword [edi + 4]
add eax, 0x94
push eax
call fcn.0906767e
cmp dword [esi], 0
pop ecx
pop ecx
jne 0x90788fb
push 0
push 0x88b
push 0x4ce3
push dword [edi + 4]
call fcn.0906767e
add esp, 0x10
mov dword [esi], eax
mov ecx, edi
mov dword [ebp - 0x2954], edi
call fcn.09015fe5
and dword [ebp - 4], 0
lea eax, [ebp - 0x60]
mov dword [ebp - 0x293c], eax
xor esi, esi
mov eax, dword [ebp - 0x2948]
add eax, 4
mov dword [ebp - 0x2938], esi
mov dword [ebp - 0x2940], eax
xor eax, eax
lea edi, [ebp - 0x85e]
inc eax
mov dword [ebp - 0x2934], eax
shr eax, 1
mov ecx, 0x8000
test esi, esi
movzx edx, ax
mov eax, edx
cmove ecx, eax
cmp esi, 1
mov word [edi - 2], cx
mov ecx, 0x8000
cmove ecx, eax
cmp esi, 2
mov word [edi], cx
mov ecx, 0x8000
cmove ecx, eax
lea edi, [edi + 8]
mov word [edi - 6], cx
cmp esi, 3
mov ecx, 0x8000
cmove ecx, eax
mov eax, dword [ebp - 0x2934]
add eax, 0x101
mov word [edi - 4], cx
mov dword [ebp - 0x2934], eax
cmp eax, 0x10101
jb 0x907893b
mov ecx, dword [ebp - 0x2944]
lea eax, [ebp - 0x860]
push 0
push 0x504c4142
push 0x434d594b
push 0x100
push eax
push eax
call fcn.0906767e
and dword [ebp - 0x2934], 0
xor edi, edi
movzx ecx, word [ebp - 0x66]
movzx eax, word [ebp + edi*8 - 0x85e]
sub eax, ecx
movzx ecx, word [ebp - 0x64]
cdq
mov esi, eax
movzx eax, word [ebp + edi*8 - 0x85c]
sub eax, ecx
xor esi, edx
sub esi, edx
cdq
mov ecx, eax
movzx eax, word [ebp + edi*8 - 0x85a]
xor ecx, edx
sub ecx, edx
movzx edx, word [ebp - 0x62]
sub eax, edx
cdq
xor eax, edx
sub eax, edx
add eax, ecx
add eax, esi
test edi, edi
jne 0x9078a17
test eax, eax
je 0x9078a53
mov ecx, eax
mov dword [ebp - 0x2934], ecx
jmp 0x9078a1d
mov ecx, dword [ebp - 0x2934]
cmp eax, ecx
ja 0x9078a53
shl eax, 0xf
xor edx, edx
div ecx
mov ecx, 0x8000
sub ecx, eax
mov word [ebp + edi*2 - 0x2128], cx
inc edi
movzx ecx, word [ebp - 0x66]
cmp edi, 0x100
jb 0x90789c8
lea ecx, [ebp - 0x2128]
call fcn.090679e7
test al, al
jne 0x9078a5e
lea ecx, [ebp - 0x2128]
call fcn.09067a07
push 8
lea ecx, [ebp - 0x2128]
call fcn.0906767e
mov edi, dword [ebp - 0x2940]
lea esi, [ebp - 0x2128]
mov ecx, 0x80
lea eax, [ebp - 0x2930]
rep movsd dword es:[edi], dword [esi]
push eax
lea ecx, [ebp - 0x2128]
call fcn.0906767e
mov edi, dword [ebp - 0x293c]
xor esi, esi
mov eax, esi
lea ecx, [ebp - 0x2930]
and eax, 0x1ffff
shl eax, 0xc
push eax
call fcn.0906767e
mov word [edi], ax
inc esi
add edi, 2
cmp esi, 9
jb 0x9078a98
mov esi, dword [ebp - 0x2938]
add dword [ebp - 0x2940], 0x200
inc esi
mov dword [ebp - 0x293c], edi
mov dword [ebp - 0x2938], esi
cmp esi, 4
jb 0x907892c
and dword [ebp - 0x2940], 0
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x294c], ecx
movzx eax, word [ecx]
xor edx, edx
mov dword [ebp - 0x293c], edx
lea ecx, [ebp - 0x1f26]
mov dword [ebp - 0x2950], eax
movzx eax, word [ebp + edx*2 - 0x4e]
xor edi, edi
mov dword [ebp - 0x2938], edi
mov dword [ebp - 0x2934], eax
movzx edx, word [ebp + edi*2 - 0x3c]
xor esi, esi
mov edi, dword [ebp - 0x2934]
mov eax, dword [ebp - 0x2950]
mov word [ecx - 2], ax
mov ax, word [ebp + esi*2 - 0x2a]
inc esi
mov word [ecx], di
mov word [ecx + 2], dx
mov word [ecx + 4], ax
add ecx, 8
cmp esi, 9
jb 0x9078b27
mov edi, dword [ebp - 0x2938]
inc edi
mov dword [ebp - 0x2938], edi
cmp edi, 9
jb 0x9078b1a
mov edx, dword [ebp - 0x293c]
inc edx
mov dword [ebp - 0x293c], edx
cmp edx, 9
jb 0x9078b07
mov ecx, dword [ebp - 0x2944]
lea eax, [ebp - 0x1f28]
push 0
push 0x504c4142
push 0x434d594b
push 0x2d9
push eax
push eax
call fcn.0906767e
mov eax, dword [ebp - 0x2948]
lea ecx, [ebp - 0x2968]
push 1
push 0x88b
push dword [ebp - 0x2940]
push dword [eax]
call fcn.0906767e
lea ecx, [ebp - 0x2968]
mov byte [ebp - 4], 1
call fcn.09005a8c
lea edi, [ebp - 0x1f28]
mov dword [ebp - 0x2934], 9
lea esi, [eax + 2]
mov dword [ebp - 0x293c], 9
mov dword [ebp - 0x2938], 9
mov eax, dword [edi]
mov edx, dword [edi + 4]
shr eax, 0x10
imul eax, eax, 0xff
movzx ecx, dx
add ecx, 0x40
shr ecx, 7
add eax, 0x4000
shr eax, 0xf
cmp ecx, 0xff
mov byte [esi - 2], al
movzx eax, cl
mov ecx, 0xff
cmova eax, ecx
shr edx, 0x10
add edx, 0x40
mov byte [esi - 1], al
shr edx, 7
cmp edx, ecx
movzx eax, dl
cmova eax, ecx
add edi, 8
mov byte [esi], al
add esi, 3
dec dword [ebp - 0x2938]
jne 0x9078be8
dec dword [ebp - 0x293c]
jne 0x9078bde
dec dword [ebp - 0x2934]
jne 0x9078bd4
lea ecx, [ebp - 0x2968]
mov byte [ebp - 4], 0
call fcn.09005ab3
mov eax, dword [ebp - 0x2940]
mov ecx, dword [ebp - 0x294c]
add eax, 0x88b
add ecx, 2
mov dword [ebp - 0x2940], eax
mov dword [ebp - 0x294c], ecx
cmp eax, 0x4ce3
jb 0x9078af0
mov ecx, dword [ebp - 0x2944]
or dword [ebp - 4], 0xffffffff
call fcn.0906767e
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.090020f2
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4