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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c4
push esi
push edi
mov esi, str.SrchDSSConnection
mov dword [ebp - 0x54], ecx
lea edi, [ebp - 0x68]
mov dword [ebp - 0x28], 0x8fee657c
xor ecx, ecx
mov dword [ebp - 0x24], 0x6ce65079
mov dword [ebp - 0x20], 0xdd0fb3b1
mov eax, ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x1c], 0x771d51dd
mov dword [ebp - 0x18], 0x9d651bc9
mov dword [ebp - 0x14], 0x5976c8e5
movsd dword es:[edi], dword [esi]
mov dword [ebp - 8], ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov byte [ebp + eax - 0x170], al
inc eax
cmp eax, 0x100
jb 0xc466cb
mov esi, dword [0xc77130]
mov edi, ecx
xor edx, edx
mov dword [ebp - 0xc], 0x11
mov eax, edi
mov cl, byte [ebp + edi - 0x170]
div dword [ebp - 0xc]
mov byte [ebp - 1], cl
movzx ecx, cl
imul esi, esi, 0x35ff875d
movzx eax, byte [ebp + edx - 0x68]
add eax, dword [ebp - 8]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 8], ecx
mov dword [0xc77130], esi
mov al, byte [ebp + ecx - 0x170]
mov byte [ebp + edi - 0x170], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x170], al
cmp edi, 0x100
jb 0xc466e2
xor eax, eax
mov dword [ebp - 0x40], esi
mov dword [ebp - 8], eax
mov esi, eax
mov edi, eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + esi - 0x170]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x170]
mov byte [ebp + esi - 0x170], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x170], cl
movzx eax, byte [ebp + esi - 0x170]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x170]
xor al, byte [ebp + edi - 0x28]
mov byte [ebp + edi - 0x18c], al
inc edi
cmp edi, 0x18
jb 0xc46746
mov esi, dword [ebp - 0x40]
xor eax, eax
mov byte [ebp - 0x174], al
mov edi, eax
mov dword [ebp - 0x28], 0x66beaacc
mov dword [ebp - 0x24], 0x5f4a66
mov dword [ebp - 0x20], 0xb35f8147
mov dword [ebp - 0x1c], 0xb4d0924b
mov dword [ebp - 0x18], 0x99974632
mov dword [ebp - 0x14], 0xfed2092c
push esi
mov edx, esi
mov ecx, str.SrchFilterDaemon
call fcn.00c4574b
mov esi, dword [0xc771ac]
xor eax, eax
or esi, 0x11c88090
inc edi
pop ecx
mov dword [0xc77130], esi
cmp word [edi*2 + str.stream_timeout], ax
jne 0xc467d5
mov eax, dword [ebp - 8]
mov dword [ebp - 0x40], esi
cmp eax, edi
jae 0xc4684e
mov ecx, esi
cmp eax, 0x220f
jne 0xc4681d
mov esi, ecx
or esi, 0xfa9fd1ad
mov edx, dword [0xc771ac]
lea eax, [esi - 0x599c39d0]
mov ecx, str.threadId
mov dword [ebp - 0x40], eax
mov dword [ebp - 0xc], eax
mov dword [0xc77130], eax
call fcn.00c45da2
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
inc eax
mov dword [ebp - 8], eax
mov esi, ecx
cmp eax, edi
jb 0xc4680e
push 6
pop ecx
mov esi, str.no_such_device_or_address
lea edi, [ebp - 0x70]
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov eax, ecx
movsw word es:[edi], word [esi]
mov edi, ecx
mov byte [ebp + eax - 0x170], al
inc eax
cmp eax, 0x100
jb 0xc46863
mov esi, ecx
xor edx, edx
mov dword [ebp - 0xc], 0x19
mov eax, esi
mov cl, byte [ebp + esi - 0x170]
div dword [ebp - 0xc]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x70]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x170]
mov byte [ebp + esi - 0x170], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x170], al
cmp esi, 0x100
jb 0xc46874
xor eax, eax
mov dword [ebp - 8], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + edi - 0x170]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x170]
mov byte [ebp + edi - 0x170], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x170], cl
movzx eax, byte [ebp + edi - 0x170]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x170]
xor al, byte [ebp + esi - 0x28]
mov byte [ebp + esi - 0x1a8], al
inc esi
cmp esi, 0x18
jb 0xc468c5
push 0xb
pop ecx
mov esi, 0xc6f8cc
mov al, byte [str.threadId]
lea edi, [ebp - 0x3c]
xor edx, edx
rep movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x190], dl
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
cmp al, byte [ebp - 0x3c]
jne 0xc46960
mov esi, edx
test al, al
je 0xc4695e
cmp byte [ebp + esi - 0x3c], 0
je 0xc4695e
call fcn.00c4555f
mov al, byte [esi + 0xc77169]
inc esi
cmp al, byte [ebp + esi - 0x3c]
je 0xc46941
xor edx, edx
mov esi, 0xc70540
mov dword [ebp - 0x28], 0x1e68f6c6
lea edi, [ebp - 0x64]
mov dword [ebp - 0x24], 0x5e40caec
mov dword [ebp - 0x20], 0x4c22ee8c
mov eax, edx
mov dword [ebp - 0x1c], 0xacd77f24
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x18], 0xd9f64cdd
mov dword [ebp - 0x14], 0xd448e655
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, edx
mov byte [ebp + eax - 0x170], al
inc eax
cmp eax, 0x100
jb 0xc4699a
mov esi, edx
xor edx, edx
mov dword [ebp - 0xc], 0xc
mov eax, esi
mov cl, byte [ebp + esi - 0x170]
div dword [ebp - 0xc]
mov byte [ebp - 1], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x64]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x170]
mov byte [ebp + esi - 0x170], al
inc esi
mov al, byte [ebp - 1]
mov byte [ebp + edi - 0x170], al
cmp esi, 0x100
jb 0xc469ab
xor ecx, ecx
mov edi, ecx
mov dword [ebp - 0xc], ecx
mov eax, ecx
inc eax
movzx esi, al
push dword [ebp - 0x40]
mov dword [ebp - 0x48], esi
mov cl, byte [ebp + esi - 0x170]
movzx edx, cl
lea eax, [edx + edi]
movzx edi, al
mov dword [ebp - 0x4c], edi
mov al, byte [ebp + edi - 0x170]
mov byte [ebp + esi - 0x170], al
mov byte [ebp + edi - 0x170], cl
movzx eax, byte [ebp + esi - 0x170]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x170]
mov byte [ebp - 1], al
mov eax, str.stream_timeout
mov edx, eax
mov ecx, eax
call fcn.00c45a44
pop ecx
xor eax, eax
lea edi, [ebp - 0x6c]
push 5
mov edx, eax
mov esi, 0xc70550
mov al, byte [str.SrchFilterDaemon]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 8], edx
cmp al, byte [ebp - 0x6c]
jne 0xc46abf
test al, al
je 0xc46a95
cmp byte [ebp + edx - 0x6c], 0
je 0xc46a95
call fcn.00c46236
mov edx, dword [ebp - 8]
inc edx
mov dword [ebp - 8], edx
mov al, byte [edx + str.SrchFilterDaemon]
cmp al, byte [ebp + edx - 0x6c]
je 0xc46a72
mov edi, dword [ebp - 0x44]
cmp edi, edx
jae 0xc46abf
mov eax, dword [ebp - 0x40]
mov esi, edx
xor eax, 0x22cb726b
mov dword [ebp - 0x44], edx
mov dword [0xc771ac], eax
sub esi, edi
call fcn.00c4555f
call fcn.00c456ec
sub esi, 1
jne 0xc46ab0
mov ecx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x4c]
mov al, byte [ebp + ecx - 0x28]
xor al, byte [ebp - 1]
mov byte [ebp + ecx - 0x1c4], al
inc ecx
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xc], ecx
cmp ecx, 0x18
jb 0xc469fc
mov eax, dword fs:[0x30]
lea ecx, [ebp - 0x50]
push ecx
xor edx, edx
xor ecx, ecx
push edx
push edx
mov byte [ebp - 0x1ac], dl
inc ecx
push dword [eax + 0xa8]
lea edx, [ebp - 0x18c]
push dword [eax + 0xa4]
call fcn.00c4ba1b
call eax
lea ecx, [ebp - 0x1a8]
call fcn.00c4d05e
push dword [ebp - 0x50]
mov esi, eax
lea edx, [ebp - 0x1c4]
push esi
push dword [ebp - 0x54]
push 2
pop ecx
call fcn.00c4ba1b
call eax
mov ecx, esi
call fcn.00c4d317
push eax
xor eax, eax
push eax
push esi
call fcn.00c4cf49
add esp, 0x18
mov ecx, esi
call fcn.00c4ba07
pop edi
pop esi
leave
ret