Function at 0x90643f8
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 0x90a2d2c
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x8060
call fcn.0909ea10
mov eax, dword [0x90de124]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebx + 8]
mov eax, dword [edi + 4]
add eax, 0x78
push 0
push eax
mov dword [ebp - 0x804c], ecx
mov dword [ebp - 0x8058], edi
call fcn.09029bb6
mov eax, dword [ebp - 0x804c]
cmp dword [eax], 0
pop ecx
pop ecx
mov esi, 0x4000
jne 0x9064487
mov edi, dword [edi + 4]
push 0
push esi
push 0x40000
push edi
call fcn.09029bb6
mov ecx, dword [ebp - 0x804c]
add esp, 0x10
mov dword [ecx], eax
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x803c], 7
mov eax, dword [ebp - 0x803c]
push 0xf
xor edx, edx
pop edi
div edi
add dword [ebp - 0x803c], 0x8000
mov word [ecx], ax
add ecx, 2
cmp dword [ebp - 0x803c], 0x80007
jb 0x9064494
and dword [ebp - 0x8044], 0
lea eax, [ebp - 0x34]
mov dword [ebp - 0x8050], eax
mov eax, dword [ebp - 0x8050]
movzx eax, word [eax]
and dword [ebp - 0x8040], 0
mov dword [ebp - 0x8048], eax
lea eax, [ebp - 0x8036]
and dword [ebp - 0x803c], 0
mov edx, dword [ebp - 0x803c]
movzx edx, word [ebp + edx*2 - 0x34]
xor ecx, ecx
mov di, word [ebp - 0x8048]
mov word [eax - 2], di
mov edi, dword [ebp - 0x8040]
movzx edi, word [ebp + edi*2 - 0x34]
mov word [eax], di
mov di, word [ebp + ecx*2 - 0x34]
mov word [eax + 2], dx
mov word [eax + 4], di
inc ecx
add eax, 8
cmp ecx, 0x10
jb 0x90644fd
inc dword [ebp - 0x803c]
cmp dword [ebp - 0x803c], 0x10
jb 0x90644f0
inc dword [ebp - 0x8040]
cmp dword [ebp - 0x8040], 0x10
jb 0x90644e9
mov ecx, dword [ebp - 0x8058]
push 0
mov eax, 0x434d594b
push eax
push eax
push 0x1000
lea eax, [ebp - 0x8038]
push eax
push eax
call fcn.09029bb6
mov eax, dword [ebp - 0x804c]
push 1
push esi
push dword [ebp - 0x8044]
lea ecx, [ebp - 0x806c]
push dword [eax]
call fcn.09029bb6
and dword [ebp - 4], 0
lea ecx, [ebp - 0x806c]
call fcn.09005145
lea ecx, [ebp - 0x8038]
add eax, 2
mov dword [ebp - 0x8048], 0x10
mov dword [ebp - 0x803c], eax
mov dword [ebp - 0x8054], 0x10
mov eax, dword [ebp - 0x803c]
mov dword [ebp - 0x8040], ecx
mov dword [ebp - 0x803c], 0x10
mov edi, dword [ecx]
mov ecx, dword [ecx + 4]
movzx edx, di
imul edx, edx, 0xff
add edx, esi
shr edx, 0xf
mov byte [eax - 2], dl
shr edi, 0x10
mov edx, edi
imul edx, edx, 0xff
add edx, esi
shr edx, 0xf
mov byte [eax - 1], dl
movzx edx, cx
shr ecx, 0x10
imul edx, edx, 0xff
imul ecx, ecx, 0xff
add ecx, esi
shr ecx, 0xf
add edx, esi
mov byte [eax + 1], cl
mov ecx, dword [ebp - 0x8040]
shr edx, 0xf
mov byte [eax], dl
add ecx, 8
add eax, 4
dec dword [ebp - 0x803c]
mov dword [ebp - 0x8040], ecx
jne 0x90645cf
dec dword [ebp - 0x8054]
mov dword [ebp - 0x803c], eax
jne 0x90645b9
dec dword [ebp - 0x8048]
jne 0x90645a9
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x806c]
call fcn.09005177
add dword [ebp - 0x8044], esi
add dword [ebp - 0x8050], 2
cmp dword [ebp - 0x8044], 0x40000
jb 0x90644cd
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.09001690
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4