Function at 0xc6161d
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [0xc78a54]
sub esp, 0x30
push ebx
push esi
xor ebx, ebx
push edi
mov ecx, ebx
add edx, 0x7a723e7e
inc ecx
cmp word [ecx*2 + 0xc75420], bx
jne 0xc61630
mov esi, 0xc7008c
lea edi, [ebp - 0xc]
mov eax, edx
xor edx, 0x8cb8889c
or eax, 0x361a27b
cmp ecx, 0x20f4
movsd dword es:[edi], dword [esi]
cmovbe edx, eax
mov eax, ebx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0xc], 0x70
jne 0xc61684
mov cl, 0x70
test cl, cl
je 0xc61684
cmp byte [ebp + eax - 0xc], bl
je 0xc61684
mov cl, byte [eax + 0xc752b1]
inc eax
cmp cl, byte [ebp + eax - 0xc]
je 0xc6166d
movzx ecx, byte [eax + str.permission_denied]
mov esi, ebx
movzx eax, byte [ebp + eax - 0xc]
sub ecx, eax
mov eax, edx
or edx, 0x766ab063
and eax, 0xf43b2ac
cmp ecx, 0x25ed
cmovbe edx, eax
and edx, 0x354e11d0
or edx, 0x40102a0a
xor edx, 0x205a0aca
add edx, 0x89856f1f
inc esi
cmp word [esi*2 + str.address_in_use], bx
jne 0xc616bc
mov ecx, dword [ebp + 8]
cmp ecx, esi
jae 0xc616f1
mov eax, edx
add eax, 0xa5dd4397
cmp ecx, 0x2120
cmovne eax, edx
imul edx, eax, 0xf42b2391
inc ecx
mov eax, edx
cmp ecx, esi
jb 0xc616d6
mov eax, dword [ebp + 8]
mov bl, byte [eax]
test bl, bl
je 0xc61706
and edx, 0x189f4666
inc eax
cmp byte [eax], 0
jne 0xc616fa
mov esi, 0xc72ee8
imul edx, edx, 0x2944d887
lea edi, [ebp - 0xc]
xor eax, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0xc], 0x53
jne 0xc61739
mov cl, 0x53
test cl, cl
je 0xc61739
cmp byte [ebp + eax - 0xc], 0
je 0xc61739
mov cl, byte [eax + 0xc7525d]
inc eax
cmp cl, byte [ebp + eax - 0xc]
je 0xc61721
movzx ecx, byte [eax + str.SrchDSSLogin]
movzx eax, byte [ebp + eax - 0xc]
sub ecx, eax
cmp ecx, 0xf8c
jne 0xc61757
imul eax, edx, 0xbd507dec
jmp 0xc6175d
lea eax, [edx - 0x65dabef4]
push 8
pop ecx
mov esi, str.SoftwareMicrosoftWindows_Search
lea edi, [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
or eax, 0xefbff7ad
xor edx, edx
add eax, 0x2c97b931
movsw word es:[edi], word [esi]
cmp bl, byte [ebp - 0x30]
jne 0xc617b1
mov ecx, dword [ebp + 8]
test bl, bl
je 0xc61795
cmp byte [ebp + edx - 0x30], 0
je 0xc61795
inc edx
mov bl, byte [ecx + edx]
cmp bl, byte [ebp + edx - 0x30]
je 0xc61780
mov ecx, dword [ebp + 8]
jmp 0xc617ad
cmp ecx, 0x47b
jne 0xc617a7
or eax, 0xe0db3703
and eax, 0xb51b7d06
inc ecx
cmp ecx, edx
jb 0xc6179a
xor ebx, ebx
add eax, 0xd783e02a
mov ecx, ebx
or eax, 0x43a03615
inc ecx
cmp word [ecx*2 + 0xc756d0], bx
jne 0xc617ba
mov edx, dword [ebp + 8]
cmp edx, ecx
jae 0xc617f3
mov esi, eax
mov edi, eax
mov eax, esi
and eax, 0xca9a52f0
cmp edx, 0x392
cmovne eax, edi
xor eax, 0xfe81e4d5
inc edx
mov esi, eax
mov edi, eax
cmp edx, ecx
jb 0xc617d5
mov ecx, ebx
imul eax, eax, 0x8bd82233
inc ecx
cmp word [ecx*2 + str.address_in_use], bx
jne 0xc617f5
mov edx, dword [ebp + 8]
cmp edx, ecx
jae 0xc61835
mov esi, eax
mov edi, eax
mov eax, edi
cmp edx, 0x2579
jne 0xc61822
mov eax, esi
xor eax, 0xe9fbf309
xor eax, 0x74771c95
inc edx
mov dword [0xc78a54], eax
mov esi, eax
mov edi, esi
cmp edx, ecx
jb 0xc61811
pop edi
and eax, 0xb001ad05
pop esi
mov dword [0xc78a54], eax
pop ebx
leave
ret