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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
and dword [ebp - 4], 0
push ebx
mov ebx, dword [0xc770d8]
push esi
push edi
mov esi, 0xc6f58c
mov dword [ebp - 0x48], ecx
lea edi, [ebp - 0x3c]
mov dword [ebp - 0x74], 0xe7f576a2
sub ebx, 0x53195851
mov dword [ebp - 0x70], 0x2ad89c92
and dword [ebp - 0x2c], 0
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x6c], 0x8a283c96
mov dword [ebp - 0x68], 0xe574b576
mov dword [ebp - 0x64], 0xe6d13a2e
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x60], 0xc93bc3b6
mov dword [ebp - 0x5c], 0x39c55ab2
mov dword [ebp - 0x58], 0x3e74b927
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x54], 0x8acab7c3
mov dword [ebp - 0x50], 0x2976f31b
mov dword [ebp - 0x4c], 0x1d53e952
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0xc6f394
lea edi, [ebp - 0x1c]
xor eax, eax
mov dword [ebp - 0x24], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x1c], 0x43
jne 0xc47e24
mov cl, 0x43
test cl, cl
je 0xc47e21
cmp byte [ebp + eax - 0x1c], 0
je 0xc47e21
mov cl, byte [eax + 0xc70db1]
inc eax
cmp cl, byte [ebp + eax - 0x1c]
je 0xc47e09
mov dword [ebp - 0x24], eax
call fcn.00c456ec
mov ecx, dword [ebp - 0x24]
movzx eax, byte [ebp + ecx - 0x1c]
movzx ecx, byte [ecx + 0xc70db0]
sub ecx, eax
cmp ecx, 0x195e
jne 0xc47e4a
or ebx, 0xb87ecd1a
jmp 0xc47e5a
mov ecx, 0xc6ffe0
call fcn.00c45ba8
add ebx, 0xa0d80e63
mov ecx, dword [ebp - 0x2c]
mov edi, 0x100
mov byte [ebp + ecx - 0x18c], cl
inc ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, edi
jb 0xc47ded
mov dword [ebp - 8], ebx
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x18c]
push 0xe
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x3c]
add eax, dword [ebp - 4]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 4], ecx
mov al, byte [ebp + ecx - 0x18c]
mov byte [ebp + esi - 0x18c], al
inc esi
mov byte [ebp + ecx - 0x18c], bl
cmp esi, edi
jb 0xc47e7a
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x18c]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x18c]
mov byte [ebp + edi - 0x18c], al
mov byte [ebp + ebx - 0x18c], cl
movzx eax, byte [ebp + edi - 0x18c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x18c]
xor al, byte [ebp + esi - 0x74]
mov byte [ebp + esi - 0x210], al
inc esi
cmp esi, 0x2c
jb 0xc47ebd
and dword [ebp - 4], 0
lea edi, [ebp - 0x34]
mov esi, 0xc7008c
mov byte [ebp - 0x1e4], 0
mov dword [ebp - 0x20], 0x4d8faefd
xor eax, eax
mov dword [ebp - 0x1c], 0x247de96b
mov dword [ebp - 0x18], 0xa3b55e59
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0xd022788f
mov dword [ebp - 0x10], 0xb38f5a86
mov dword [ebp - 0xc], 0xc6fc51ae
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x18c], al
inc eax
cmp eax, 0x100
jb 0xc47f50
xor dword [ebp - 8], 0xb47c3869
xor edi, edi
mov esi, dword [ebp - 4]
push 6
pop ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x18c]
mov eax, edi
div ecx
movzx ecx, bl
push 6
movzx eax, byte [ebp + edx - 0x34]
add eax, esi
add ecx, eax
movzx esi, cl
pop ecx
mov al, byte [ebp + esi - 0x18c]
mov byte [ebp + edi - 0x18c], al
inc edi
mov byte [ebp + esi - 0x18c], bl
cmp edi, 0x100
jb 0xc47f6e
and dword [ebp - 0x24], 0
and dword [ebp - 0x2c], 0
xor ebx, ebx
mov esi, dword [ebp - 8]
and esi, 0x52ca589
inc ebx
cmp byte [ebx + 0xc70db0], 0
jne 0xc47fb8
call fcn.00c4555f
mov edi, esi
cmp dword [ebp - 0x48], ebx
jae 0xc48020
mov edi, dword [ebp - 0x48]
mov dword [ebp - 8], esi
jmp 0xc47fdf
mov esi, dword [ebp - 8]
mov ecx, 0xc705f0
call fcn.00c45ba8
cmp edi, 0x3e8
jne 0xc4800b
mov esi, dword [ebp - 8]
mov edx, 0xc700cc
and esi, 0xf7d4b8e1
mov ecx, 0xc70610
push esi
call fcn.00c45a44
pop ecx
or esi, 0x2b420ddc
mov dword [ebp - 8], esi
call fcn.00c4641e
inc edi
cmp edi, ebx
jb 0xc47fdc
mov edi, esi
and dword [ebp - 8], 0
and dword [ebp - 4], 0
push esi
mov edx, str.no_message_available
mov ecx, 0xc70640
call fcn.00c45a44
mov eax, dword [ebp - 4]
mov esi, edi
or esi, 0xea6850e6
inc eax
pop ecx
mov edi, esi
mov dword [ebp - 4], eax
cmp byte [eax + 0xc70db0], 0
jne 0xc48028
mov ecx, dword [ebp - 0x30]
mov ebx, esi
cmp ecx, eax
jae 0xc48082
mov edx, esi
mov esi, edx
cmp ecx, 0x106f
jne 0xc4806e
imul esi, edi, 0xaecd17d5
xor esi, 0x815e53b9
inc ecx
mov edi, esi
mov edx, edi
cmp ecx, eax
jb 0xc4805e
mov dword [ebp - 0x30], ecx
mov ebx, esi
mov eax, dword [ebp - 0x2c]
inc eax
movzx eax, al
mov dword [ebp - 0x2c], eax
mov cl, byte [ebp + eax - 0x18c]
mov eax, dword [ebp - 0x24]
movzx edx, cl
add eax, edx
mov dword [ebp - 4], edx
mov edx, dword [ebp - 0x2c]
movzx eax, al
mov dword [ebp - 0x24], eax
mov al, byte [ebp + eax - 0x18c]
mov byte [ebp + edx - 0x18c], al
mov eax, dword [ebp - 0x24]
mov byte [ebp + eax - 0x18c], cl
mov eax, edx
mov ecx, dword [ebp - 8]
movzx eax, byte [ebp + eax - 0x18c]
add eax, dword [ebp - 4]
movzx eax, al
mov al, byte [ebp + eax - 0x18c]
xor al, byte [ebp + ecx - 0x20]
mov byte [ebp + ecx - 0x1c4], al
inc ecx
mov dword [ebp - 8], ecx
cmp ecx, 0x18
jb 0xc48024
mov esi, str.ProtocolHandlers
mov dword [ebp - 0x44], 0x87875ff5
lea edi, [ebp - 0x1c]
mov dword [ebp - 0x40], 0x25cf586c
xor ecx, ecx
mov dword [ebp - 0x3c], 0x48658d00
xor ebx, 0x6dfc3492
mov byte [ebp - 0x1ac], cl
movsd dword es:[edi], dword [esi]
sub ebx, 0x7c085467
mov dword [ebp - 0x38], 0xb2a02660
mov eax, ecx
mov dword [ebp - 0x34], 0x19bf83bf
mov dword [ebp - 0x30], 0x6e5c778e
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x18c], al
inc eax
cmp eax, 0x100
jb 0xc48141
mov esi, ecx
push ebx
mov edx, str.SearchProtocolHandler
mov ecx, 0xc706f0
call fcn.00c45a44
pop ecx
mov edi, 0xc70b60
push ebx
mov edx, 0xc70720
mov ecx, 0xc70760
call fcn.00c45a44
add ebx, 0x38d6fb8a
inc edi
pop ecx
cmp byte [edi], 0
jne 0xc48168
mov dl, byte [ebp + esi - 0x18c]
mov eax, esi
and eax, 0xf
movzx ecx, dl
or ebx, 0x97cef544
imul ebx, ebx, 0x68353392
movzx eax, byte [ebp + eax - 0x1c]
add eax, dword [ebp - 4]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 4], ecx
mov al, byte [ebp + ecx - 0x18c]
mov byte [ebp + esi - 0x18c], al
inc esi
mov byte [ebp + ecx - 0x18c], dl
cmp esi, 0x100
jb 0xc48152
mov dword [0xc770d8], ebx
xor edi, edi
xor ebx, ebx
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x18c]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x18c]
mov byte [ebp + edi - 0x18c], al
mov byte [ebp + ebx - 0x18c], cl
movzx eax, byte [ebp + edi - 0x18c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x18c]
xor al, byte [ebp + esi - 0x44]
mov byte [ebp + esi - 0x1e0], al
inc esi
cmp esi, 0x18
jb 0xc481da
mov esi, 0xc70054
mov byte [ebp - 0x1c8], 0
lea edi, [ebp - 0x38]
mov dword [ebp - 0x20], 0xca7dc963
mov dword [ebp - 0x1c], 0x3b06b1c7
mov ebx, 0x100
mov dword [ebp - 0x18], 0x52f51dfd
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0xbdd8c9e9
mov dword [ebp - 0x10], 0xc417e0a7
mov dword [ebp - 0xc], 0x47fdde43
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x18c], al
inc eax
cmp eax, ebx
jb 0xc4826f
xor esi, esi
mov dl, byte [ebp + esi - 0x18c]
mov eax, esi
and eax, 7
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x38]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x18c]
mov byte [ebp + esi - 0x18c], al
inc esi
mov byte [ebp + edi - 0x18c], dl
cmp esi, ebx
jb 0xc4827d
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x18c]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x18c]
mov byte [ebp + edi - 0x18c], al
mov byte [ebp + ebx - 0x18c], cl
movzx eax, byte [ebp + edi - 0x18c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x18c]
xor al, byte [ebp + esi - 0x20]
mov byte [ebp + esi - 0x64], al
inc esi
cmp esi, 0x18
jb 0xc482b8
push 2
lea edx, [ebp - 0x210]
mov byte [ebp - 0x4c], 0
pop ecx
call fcn.00c4ba1b
call eax
test eax, eax
jne 0xc484b7
mov esi, str.PerformanceLevel
mov dword [ebp - 0x8c], 0x25add686
lea edi, [ebp - 0x40]
mov dword [ebp - 0x88], 0x94abf7ff
mov dword [ebp - 0x84], 0x99ed1c1b
mov ebx, 0x100
mov dword [ebp - 0x80], 0x6108567a
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x7c], 0x895a75b4
mov dword [ebp - 0x78], 0x1524db02
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
mov byte [ebp + eax - 0x18c], al
inc eax
cmp eax, ebx
jb 0xc48368
xor esi, esi
mov dl, byte [ebp + esi - 0x18c]
mov eax, esi
and eax, 0xf
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x40]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x18c]
mov byte [ebp + esi - 0x18c], al
inc esi
mov byte [ebp + edi - 0x18c], dl
cmp esi, ebx
jb 0xc48376
mov esi, dword [0xc770d8]
xor ecx, ecx
xor ebx, ebx
xor edi, edi
lea eax, [ebx + 1]
movzx ebx, al
mov dword [ebp - 0x30], ebx
mov al, byte [ebp + ebx - 0x18c]
mov byte [ebp - 0x25], al
movzx eax, al
mov dword [ebp - 0x24], eax
add eax, ecx
movzx eax, al
xor ebx, ebx
mov dword [ebp - 4], eax
call fcn.00c4641e
xor esi, 0x85632a16
inc ebx
cmp byte [ebx + 0xc70e10], 0
jne 0xc483da
mov edx, esi
mov ecx, 0xc70db0
call fcn.00c45da2
cmp ebx, 0x21c8
jbe 0xc4840b
add esi, 0xfd2ef879
jmp 0xc48411
imul esi, esi, 0xab12de5b
mov eax, dword [ebp - 4]
mov ebx, dword [ebp - 0x30]
mov al, byte [ebp + eax - 0x18c]
mov byte [ebp + ebx - 0x18c], al
call fcn.00c46236
mov eax, 0xc70a14
add esi, 0xd7999bad
inc eax
cmp byte [eax], 0
jne 0xc4842f
mov ecx, dword [ebp - 4]
mov al, byte [ebp - 0x25]
mov dword [0xc770d8], esi
mov byte [ebp + ecx - 0x18c], al
movzx eax, byte [ebp + ebx - 0x18c]
add eax, dword [ebp - 0x24]
movzx eax, al
mov al, byte [ebp + eax - 0x18c]
xor al, byte [ebp + edi - 0x8c]
mov byte [ebp + edi - 0x1a8], al
inc edi
cmp edi, 0x18
jb 0xc483b7
lea ecx, [ebp - 0x1a8]
mov byte [ebp - 0x190], 0
call fcn.00c4d05e
mov esi, eax
mov ecx, esi
call fcn.00c4d317
add eax, eax
push eax
push esi
push dword [ebp - 0x48]
call fcn.00c4cef6
mov ecx, esi
call fcn.00c4d317
push eax
push 0
push esi
call fcn.00c4cf49
add esp, 0x18
jmp 0xc48503
lea ecx, [ebp - 0x18]
push ecx
push eax
push 2
lea edx, [ebp - 0x1c4]
pop ecx
call fcn.00c4ba1b
call eax
lea ecx, [ebp - 0x1e0]
call fcn.00c4d05e
push dword [ebp - 0xc]
mov esi, eax
lea edx, [ebp - 0x64]
push dword [ebp - 0x10]
push esi
push dword [ebp - 0x48]
push 2
pop ecx
call fcn.00c4ba1b
call eax
mov ecx, esi
call fcn.00c4d317
push eax
push 0
push esi
call fcn.00c4cf49
add esp, 0x1c
mov ecx, esi
call fcn.00c4ba07
pop edi
pop esi
pop ebx
leave
ret