Function at 0x40f200
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b4
mov eax, dword [0x401c7c]
mov ecx, 0x401ee0
mov dword [ebp - 0xc], eax
mov ax, word [0x401c80]
push 0x6f
mov word [ebp - 8], ax
mov eax, 0xb3b
mov dword [ebp - 0x3c], 0xeeace05e
mov dword [ebp - 0x38], 0xb070bebc
mov dword [ebp - 0x34], 0x38101fcd
mov dword [ebp - 0x30], 0x5f07968f
mov dword [ebp - 0x2c], 0xaa032967
mov dword [ebp - 0x28], 0xce6b811a
mov dword [ebp - 0x24], 0xc7d12e47
mov dword [ebp - 0x20], 0x6b9868cf
mov dword [ebp - 0x1c], 0x8ba7d55e
mov dword [ebp - 0x18], 0xdbf63c79
mov dword [ebp - 0x14], 0x6098c363
pop edx
add eax, edx
inc ecx
cmp eax, 0x18d
ja 0x40f288
movsx edx, byte [ecx]
test edx, edx
jne 0x40f275
jmp 0x40f28d
call fcn.0040cdc6
push ebx
push esi
push edi
xor esi, esi
mov ecx, 0x25c0
push 0x72
mov edi, esi
mov eax, 0x401f40
pop edx
add ecx, edx
inc eax
cmp ecx, 0x732
ja 0x40f2bd
movsx edx, byte [eax]
test edx, edx
jne 0x40f2a1
mov eax, dword [0x44a318]
mov dword [ebp - 4], eax
jmp 0x40f2e2
mov ebx, dword [0x44a318]
mov edx, ebx
push ecx
call fcn.0040cec2
add esp, 4
and ebx, 0xfa291c5c
call fcn.0040cdc6
and ebx, 0x3c84158a
mov dword [ebp - 4], ebx
call fcn.0040cdc6
mov eax, esi
mov byte [ebp + eax - 0x144], al
inc eax
cmp eax, 0x100
jb 0x40f2e9
push 5
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x144]
mov eax, esi
div ecx
movzx ecx, bl
push 5
movzx eax, byte [ebp + edx - 0xc]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x144]
mov byte [ebp + esi - 0x144], al
inc esi
mov byte [ebp + edi - 0x144], bl
cmp esi, 0x100
jb 0x40f2fb
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x144]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x144]
mov byte [ebp + edi - 0x144], al
mov byte [ebp + ebx - 0x144], cl
movzx eax, byte [ebp + edi - 0x144]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x144]
xor al, byte [ebp + esi - 0x3c]
mov byte [ebp + esi - 0x174], al
inc esi
cmp esi, 0x2c
jb 0x40f33e
push 6
xor ebx, ebx
mov dword [ebp - 0xc], 0x5179f96d
pop ecx
mov esi, 0x401c84
mov byte [ebp - 0x148], bl
lea edi, [ebp - 0x28]
mov word [ebp - 8], 0x5de8
rep movsd dword es:[edi], dword [esi]
mov eax, ebx
mov byte [ebp + eax - 0x144], al
inc eax
cmp eax, 0x100
jb 0x40f3b2
mov esi, dword [ebp - 4]
mov edi, ebx
add esi, 0xe857dc5f
mov dword [ebp - 0x44], esi
mov esi, ebx
push 0x17
xor edx, edx
mov bl, byte [ebp + edi - 0x144]
pop ecx
mov eax, edi
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x28]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x144]
mov byte [ebp + edi - 0x144], al
inc edi
mov byte [ebp + esi - 0x144], bl
cmp edi, 0x100
jb 0x40f3d1
mov esi, dword [ebp - 0x44]
xor ebx, ebx
push 0x72
mov dword [ebp - 4], ebx
mov eax, 0x1c45
mov ecx, 0x401f40
pop edx
add eax, edx
inc ecx
cmp eax, 0x11dc
ja 0x40f436
movsx edx, byte [ecx]
test edx, edx
jne 0x40f423
jmp 0x40f43b
call fcn.0040cdc6
sub esi, 0x421abadf
mov edi, ebx
sub esi, 0x5617db07
lea eax, [ebx + 1]
movzx ebx, al
mov eax, dword [ebp - 4]
mov cl, byte [ebp + ebx - 0x144]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 4], eax
mov al, byte [ebp + eax - 0x144]
mov byte [ebp + ebx - 0x144], al
mov eax, dword [ebp - 4]
mov byte [ebp + eax - 0x144], cl
mov eax, esi
and eax, 0x624d99f1
mov dword [0x44a318], eax
movzx eax, byte [ebp + ebx - 0x144]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x144]
xor al, byte [ebp + edi - 0xc]
mov byte [ebp + edi - 0x44], al
inc edi
cmp edi, 6
jb 0x40f443
push 0x35
pop eax
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x20], 0xa
xorps xmm1, xmm1
mov dword [ebp - 0x18], 0x27
xorps xmm2, xmm2
mov dword [ebp - 0x14], 0x2f9a
xor ebx, ebx
movups xmm0, xmmword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1b4]
mov dword [ebp - 0x20], 0x4f
psubd xmm1, xmm0
mov dword [ebp - 0x18], 0x63
movaps xmm0, xmm1
mov dword [ebp - 0x14], 0x1f19
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [0x44a2c0], esi
movups xmm0, xmm1
mov byte [ebp - 0x3e], bl
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x1b4], 0x40
movups xmm0, xmmword [ebp - 0x20]
push eax
movd esi, xmm1
psubd xmm2, xmm0
movaps xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd edi, xmm2
call fcn.0041d4e5
mov edx, eax
lea ecx, [ebp - 0x174]
call fcn.0041d4c4
call eax
test eax, eax
jne 0x40f595
mov dword [ebp - 0x24], 0x44
mov eax, ebx
mov dword [ebp - 0x20], 0x46
mov dword [ebp - 0x1c], 0x26
mov dword [ebp - 0x18], 7
mov dword [ebp - 0x14], 0xffffff49
sub ebx, dword [ebp + eax*4 - 0x24]
inc eax
cmp eax, 5
jl 0x40f587
mov eax, ebx
jmp 0x40f5c3
lea eax, [esi + 0x3400]
cdq
push edx
push eax
push dword [ebp - 0x1a8]
push dword [ebp - 0x1ac]
call fcn.00449030
mov esi, eax
mov ecx, edx
lea eax, [edi + 0x2400]
cdq
push edx
push eax
push ecx
push esi
call fcn.00449030
pop edi
pop esi
pop ebx
leave
ret