Function at 0xcf25c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x168
movaps xmm0, xmmword [0xd0eaf0]
movups xmmword [esp + 0x38], xmm0
mov dword [esp + 0x48], 0xa3a4a57d
lea eax, [esp + 0x4c]
mov dword [esp + 0x4c], 0
mov byte [esp + 0x50], 0
mov dword [esp + 0x90], 0
mov ecx, dword [esp + 0x90]
cmp ecx, 0x18
ja 0xcf2666
nop dword [eax + eax]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x90]
movzx edx, byte [esp + edx + 0x38]
lea esi, [ecx + 0xc9]
and esi, edx
add ecx, edx
add esi, esi
sub ecx, esi
add ecx, 0x3f5201c9
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xc8]
add cl, 0x81
mov edx, dword [esp + 0x90]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
cmp ecx, 0x19
jb 0xcf2610
lea esi, [esp + 0x13a]
lea edx, [esp + 0x38]
mov ecx, 5
mov edi, esi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0x14e]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x8c]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0xd19608]
mov ebx, dword [esp + 0x8c]
lea eax, [ebx + ebx]
test ebx, ebx
mov ecx, 0xffffffff
cmovns ecx, eax
push ecx
call fcn.00cd8c00
add esp, 4
push edi
push ebx
mov dword [esp + 0x78], eax
push eax
push 9
push esi
push 0
call dword [0xd19608]
movaps xmm0, xmmword [0xd0eb00]
movups xmmword [esp + 0x38], xmm0
lea edx, [esp + 0x48]
mov byte [esp + 0x48], 0
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0x90]
cmp eax, 0x10
ja 0xcf2752
nop
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
movzx ecx, byte [esp + ecx + 0x38]
lea esi, [eax + 0x37e2d8bc]
add eax, 0xbc
and eax, ecx
or esi, ecx
sub esi, eax
mov dword [esp + 0xc8], esi
mov eax, dword [esp + 0xc8]
add al, 0xdc
mov ecx, dword [esp + 0x90]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 0x90]
mov eax, dword [esp + 0x90]
cmp eax, 0x11
jb 0xcf2700
lea edi, [esp + 0x12a]
lea esi, [esp + 0x38]
mov ecx, 4
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0x13a]
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
movaps xmm0, xmmword [0xd0eb10]
movups xmmword [esp + 0x38], xmm0
movsd xmm0, qword [0xd0eb20]
movsd qword [esp + 0x48], xmm0
movaps xmm0, xmmword [0xd0eb30]
movups xmmword [esp + 0x50], xmm0
lea esi, [esp + 0x54]
mov dword [esp + 0x90], 0
mov ecx, dword [esp + 0x90]
cmp ecx, 0x27
ja 0xcf281d
nop dword [eax]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x90]
movzx edx, byte [esp + edx + 0x38]
lea edi, [ecx + 0x19de0c83]
add ecx, 0x83
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esp + 0xc8], edi
mov ecx, dword [esp + 0xc8]
mov edx, ecx
or edx, 0x6a
and ecx, 0x6a
add ecx, edx
inc cl
mov edx, dword [esp + 0x90]
mov byte [esp + edx + 0x38], cl
inc dword [esp + 0x90]
mov ecx, dword [esp + 0x90]
cmp ecx, 0x28
jb 0xcf27c0
lea edx, [esp + 0x90]
lea ebx, [esp + 0x38]
mov ecx, 7
mov edi, edx
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xac]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
movaps xmm0, xmmword [0xd0eb40]
movups xmmword [esp + 0x38], xmm0
mov dword [esp + 0x48], 0x8342817a
lea ebx, [esp + 0x4c]
mov word [esp + 0x4c], 0x8d82
mov dword [esp + 0x52], 0
mov dword [esp + 0x4e], 0
mov word [esp + 0x56], 0
mov dword [esp + 0x100], 0
mov ecx, dword [esp + 0x100]
cmp ecx, 0x1f
ja 0xcf28f1
nop word cs:[eax + eax]
mov ecx, dword [esp + 0x100]
mov esi, dword [esp + 0x100]
movzx esi, byte [esp + esi + 0x38]
lea edi, [ecx - 0x6040c1bd]
add ecx, 0x43
and ecx, esi
or edi, esi
sub edi, ecx
mov dword [esp + 0xc8], edi
mov ecx, dword [esp + 0xc8]
add cl, 0x2b
mov esi, dword [esp + 0x100]
mov byte [esp + esi + 0x38], cl
inc dword [esp + 0x100]
mov ecx, dword [esp + 0x100]
cmp ecx, 0x20
jb 0xcf28a0
lea esi, [esp + 0x14e]
lea eax, [esp + 0x38]
mov ecx, 5
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x162]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea eax, [esp + 0x12a]
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], edx
mov dword [esp + 0x124], esi
lea esi, [esp + 0x50]
mov eax, dword [esp + 0x70]
add eax, 2
mov dword [esp + 0xb0], eax
xor eax, eax
xor ebx, ebx
cmp ebx, 3
setne al
mov eax, dword [eax*4 + 0xd14600]
mov ecx, 0xf858972b
xor ecx, dword [0xd14608]
add eax, ecx
inc eax
mov dword [esp + 0x7c], 0
jmp eax