Function at 0x90a205d
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 0x90d3f8e
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x2150
call fcn.090cde60
mov eax, dword [0x91154f8]
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, ecx
mov dword [ebp - 0x2144], edi
mov esi, dword [ebx + 8]
push 0
mov dword [ebp - 0x213c], esi
mov eax, dword [esi + 4]
add eax, 0xa0
push eax
call fcn.09021c7a
cmp dword [edi], 0
pop ecx
pop ecx
jne 0x90a20e2
push 0
push 0x88b
push 0x4ce3
push dword [esi + 4]
call fcn.09021c7a
add esp, 0x10
mov dword [edi], eax
mov ecx, esi
mov dword [ebp - 0x214c], esi
call fcn.09018f87
and dword [ebp - 4], 0
lea eax, [ebp - 0x60]
mov dword [ebp - 0x212c], eax
xor edi, edi
mov eax, dword [ebp - 0x2144]
add eax, 4
mov dword [ebp - 0x2130], edi
mov dword [ebp - 0x2134], eax
xor eax, eax
lea esi, [ebp - 0x85e]
inc eax
mov dword [ebp - 0x2138], eax
shr eax, 1
mov ecx, 0x8000
test edi, edi
movzx edx, ax
mov eax, edx
cmove ecx, eax
cmp edi, 1
mov word [esi - 2], cx
mov ecx, 0x8000
cmove ecx, eax
cmp edi, 2
mov word [esi], cx
mov ecx, 0x8000
cmove ecx, eax
lea esi, [esi + 8]
mov word [esi - 6], cx
cmp edi, 3
mov ecx, 0x8000
cmove ecx, eax
mov eax, dword [ebp - 0x2138]
add eax, 0x101
mov word [esi - 4], cx
mov dword [ebp - 0x2138], eax
cmp eax, 0x10101
jb 0x90a2122
mov ecx, dword [ebp - 0x213c]
lea eax, [ebp - 0x860]
push 0
push 0x504c4142
push 0x434d594b
push 0x100
push eax
push eax
call fcn.09021c7a
movzx ecx, word [ebp - 0x66]
xor esi, esi
xor edi, edi
movzx eax, word [ebp + edi*8 - 0x85e]
sub eax, ecx
mov dword [ebp - 0x2140], esi
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 0x90a21f9
test eax, eax
je 0x90a2235
mov esi, eax
jmp 0x90a2203
mov esi, dword [ebp - 0x2140]
cmp eax, esi
ja 0x90a2235
shl eax, 0xf
xor edx, edx
div esi
mov ecx, 0x8000
sub ecx, eax
mov word [ebp + edi*2 - 0x2128], cx
inc edi
movzx ecx, word [ebp - 0x66]
cmp edi, 0x100
jb 0x90a21aa
lea ecx, [ebp - 0x2128]
call fcn.09078991
test al, al
jne 0x90a2240
lea ecx, [ebp - 0x2128]
call fcn.090789b1
push 8
lea ecx, [ebp - 0x2128]
call fcn.09021c7a
mov edi, dword [ebp - 0x2134]
lea esi, [ebp - 0x2128]
mov ecx, 0x80
lea eax, [ebp - 0x1068]
rep movsd dword es:[edi], dword [esi]
push eax
lea ecx, [ebp - 0x2128]
call fcn.09021c7a
mov edi, dword [ebp - 0x212c]
xor esi, esi
mov eax, esi
lea ecx, [ebp - 0x1068]
and eax, 0x1ffff
shl eax, 0xc
push eax
call fcn.09021c7a
mov word [edi], ax
inc esi
add edi, 2
cmp esi, 9
jb 0x90a227a
add dword [ebp - 0x2134], 0x200
mov dword [ebp - 0x212c], edi
mov edi, dword [ebp - 0x2130]
inc edi
mov dword [ebp - 0x2130], edi
cmp edi, 4
jb 0x90a2113
and dword [ebp - 0x2134], 0
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x2140], ecx
movzx eax, word [ecx]
xor edx, edx
mov dword [ebp - 0x212c], edx
lea ecx, [ebp - 0x1f26]
mov dword [ebp - 0x2148], eax
movzx eax, word [ebp + edx*2 - 0x4e]
xor edi, edi
mov dword [ebp - 0x2130], edi
mov dword [ebp - 0x2138], eax
movzx edx, word [ebp + edi*2 - 0x3c]
xor esi, esi
mov edi, dword [ebp - 0x2138]
mov eax, dword [ebp - 0x2148]
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 0x90a2309
mov edi, dword [ebp - 0x2130]
inc edi
mov dword [ebp - 0x2130], edi
cmp edi, 9
jb 0x90a22fc
mov edx, dword [ebp - 0x212c]
inc edx
mov dword [ebp - 0x212c], edx
cmp edx, 9
jb 0x90a22e9
mov ecx, dword [ebp - 0x213c]
lea eax, [ebp - 0x1f28]
push 0
push 0x504c4142
push 0x434d594b
push 0x2d9
push eax
push eax
call fcn.09021c7a
mov eax, dword [ebp - 0x2144]
lea ecx, [ebp - 0x2160]
push 1
push 0x88b
push dword [ebp - 0x2134]
push dword [eax]
call fcn.09021c7a
lea ecx, [ebp - 0x2160]
mov byte [ebp - 4], 1
call fcn.090067dd
lea edi, [ebp - 0x1f28]
mov dword [ebp - 0x2138], 9
lea esi, [eax + 2]
mov dword [ebp - 0x212c], 9
mov dword [ebp - 0x2130], 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
sub dword [ebp - 0x2130], 1
jne 0x90a23ca
sub dword [ebp - 0x212c], 1
jne 0x90a23c0
sub dword [ebp - 0x2138], 1
jne 0x90a23b6
lea ecx, [ebp - 0x2160]
mov byte [ebp - 4], 0
call fcn.090068a7
mov eax, dword [ebp - 0x2134]
mov ecx, dword [ebp - 0x2140]
add eax, 0x88b
add ecx, 2
mov dword [ebp - 0x2134], eax
mov dword [ebp - 0x2140], ecx
cmp eax, 0x4ce3
jb 0x90a22d2
mov ecx, dword [ebp - 0x213c]
or dword [ebp - 4], 0xffffffff
call fcn.090190fb
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.09002290
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4