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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1f0
push ebx
push esi
push edi
push 5
pop ecx
mov esi, str.too_many_files_open
mov dword [ebp - 0x68], 0x2f4fcdea
lea edi, [ebp - 0x8c]
mov dword [ebp - 0x64], 0xbd5d741e
rep movsd dword es:[edi], dword [esi]
xor ecx, ecx
mov dword [ebp - 0x60], 0xd0c55115
mov dword [ebp - 0x5c], 0xab2afe62
mov edi, ecx
mov dword [ebp - 0x58], 0xc8b03e3f
mov eax, ecx
mov dword [ebp - 0x54], 0xde858288
mov dword [ebp - 0x50], 0xa5f35c0e
mov dword [ebp - 0x4c], 0x5c69d272
mov dword [ebp - 0x48], 0x77839135
mov dword [ebp - 0x44], 0x6c030f5a
mov dword [ebp - 0x40], 0x1f6381d8
mov byte [ebp + eax - 0x1a4], al
inc eax
cmp eax, 0x100
jb 0xc5846f
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1a4]
push 0x13
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x8c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1a4]
mov byte [ebp + esi - 0x1a4], al
inc esi
mov byte [ebp + edi - 0x1a4], bl
cmp esi, 0x100
jb 0xc58480
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1a4]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1a4]
mov byte [ebp + edi - 0x1a4], al
mov byte [ebp + ebx - 0x1a4], cl
movzx eax, byte [ebp + edi - 0x1a4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1a4]
xor al, byte [ebp + esi - 0x68]
mov byte [ebp + esi - 0x1f0], al
inc esi
cmp esi, 0x2c
jb 0xc584c8
push 0xa
pop eax
push 0xe
pop ecx
mov esi, str.onecoreuap_base_appmodel_searchcommonutilscrchash.cxx
mov byte [ebp - 0x79], al
lea edi, [ebp - 0x74]
mov dword [ebp - 0x90], 0x44502c20
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x8c], 0xad7d3182
mov byte [ebp - 0x1c4], dl
mov eax, edx
mov dword [ebp - 0x88], 0x79129405
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x84], 0x3650934c
mov edi, edx
mov dword [ebp - 0x80], 0xe49f41cb
mov word [ebp - 0x7c], 0xfc63
mov byte [ebp - 0x7a], 0x5e
mov byte [ebp + eax - 0x1a4], al
inc eax
cmp eax, 0x100
jb 0xc58571
mov esi, edx
xor edx, edx
mov bl, byte [ebp + esi - 0x1a4]
push 0x38
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x74]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1a4]
mov byte [ebp + esi - 0x1a4], al
inc esi
mov byte [ebp + edi - 0x1a4], bl
cmp esi, 0x100
jb 0xc58582
mov esi, dword [0xc78634]
xor eax, eax
or esi, 0xae15eb8e
mov ebx, eax
mov dword [ebp - 0x34], esi
mov edi, eax
mov esi, eax
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x1a4]
movzx edx, cl
lea eax, [edx + esi]
movzx esi, al
mov al, byte [ebp + esi - 0x1a4]
mov byte [ebp + ebx - 0x1a4], al
mov byte [ebp + esi - 0x1a4], cl
movzx eax, byte [ebp + ebx - 0x1a4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1a4]
xor al, byte [ebp + edi - 0x90]
mov byte [ebp + edi - 0x1c0], al
inc edi
cmp edi, 0x18
jb 0xc585d6
mov esi, 0xc73910
mov dword [ebp - 0x1c], 0xf528f6b1
lea edi, [ebp - 0x84]
mov dword [ebp - 0x18], 0xed848d48
xor ecx, ecx
mov dword [ebp - 0x14], 0x34987843
mov byte [ebp - 0x1a8], cl
mov eax, ecx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], 0x74da1ab4
mov dword [ebp - 0xc], 0xfc6296b6
mov dword [ebp - 8], 0xe9b6dfa
movsd dword es:[edi], dword [esi]
mov dword [ebp - 4], ecx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [0xc78634]
or esi, 0x6f3b5ad0
sub esi, 0x37a2d446
mov dword [ebp - 0x38], esi
mov byte [ebp + eax - 0x1a4], al
inc eax
cmp eax, 0x100
jb 0xc58685
mov edi, ecx
xor edx, edx
mov bl, byte [ebp + edi - 0x1a4]
push 0xa
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x84]
add eax, dword [ebp - 4]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 4], ecx
mov al, byte [ebp + ecx - 0x1a4]
mov byte [ebp + edi - 0x1a4], al
inc edi
mov byte [ebp + ecx - 0x1a4], bl
cmp edi, 0x100
jb 0xc58696
xor eax, eax
mov esi, eax
mov ebx, eax
mov edi, eax
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x1a4]
movzx edx, cl
lea eax, [edx + esi]
movzx esi, al
mov al, byte [ebp + esi - 0x1a4]
mov byte [ebp + ebx - 0x1a4], al
mov byte [ebp + esi - 0x1a4], cl
movzx eax, byte [ebp + ebx - 0x1a4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1a4]
xor al, byte [ebp + edi - 0x1c]
mov byte [ebp + edi - 0x54], al
inc edi
cmp edi, 0x18
jb 0xc586e2
mov ebx, dword [ebp - 0x34]
xor eax, eax
mov esi, dword [ebp - 0x38]
add ebx, 0xd644b184
mov byte [ebp - 0x3c], al
mov edi, eax
mov dword [ebp - 0x30], 0x3157ab7b
mov dword [ebp - 0x2c], 0xd1569ad6
mov dword [ebp - 0x28], 0xa757b93d
mov dword [ebp - 0x24], 0x7e31d01b
mov dword [ebp - 0x20], 0xe517daef
mov dword [ebp - 0x1c], 0x3b782f4e
mov dword [ebp - 0x18], 0x7a5307e0
mov dword [ebp - 0x14], 0x837fab65
mov dword [ebp - 0x10], 0xdda44911
mov dword [ebp - 0xc], 0x91488e83
mov dword [ebp - 8], 0x96b45e99
mov dword [0xc78770], ebx
inc edi
cmp word [edi*2 + 0xc73f20], ax
jne 0xc58795
push ecx
mov edx, str.HKEY_PERFORMANCE_DATA
mov ecx, 0xc73f20
call fcn.00c5623d
pop ecx
cmp edi, 0x49c
jbe 0xc587d2
and esi, 0x88c654af
mov edx, 0xc73f20
push ebx
push esi
mov dword [ebp - 0x38], esi
call fcn.00c56941
pop ecx
pop ecx
jmp 0xc587e0
sub esi, 0x2da51be2
mov dword [ebp - 0x38], esi
call fcn.00c56a87
mov esi, str.Exception
lea edi, [ebp - 0x84]
xor eax, eax
xor ebx, 0xce02f3ae
mov dword [ebp - 4], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov esi, dword [ebp - 0x38]
mov edi, eax
mov eax, dword [ebp - 0x34]
push eax
push esi
mov edx, 0xc73f20
call fcn.00c56941
pop ecx
inc edi
mov eax, ebx
pop ecx
xor ecx, ecx
cmp word [edi*2 + 0xc73f20], cx
jne 0xc58802
push str.HKEY_PERFORMANCE_DATA
mov dword [0xc7868c], eax
call fcn.00c56a34
pop ecx
cmp edi, 0x1723
jbe 0xc58843
xor esi, 0xd17a78fc
mov dword [0xc7868c], esi
xor ecx, ecx
mov edi, 0x100
mov eax, ecx
mov byte [ebp + eax - 0x1a4], al
inc eax
cmp eax, edi
jb 0xc5884c
mov esi, ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1a4]
push 9
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x84]
add eax, dword [ebp - 4]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 4], ecx
mov al, byte [ebp + ecx - 0x1a4]
mov byte [ebp + esi - 0x1a4], al
inc esi
mov byte [ebp + ecx - 0x1a4], bl
cmp esi, edi
jb 0xc5885a
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
imul eax, dword [0xc78770], 0x77196aa4
mov dword [0xc78634], eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1a4]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1a4]
mov byte [ebp + edi - 0x1a4], al
mov byte [ebp + ebx - 0x1a4], cl
movzx eax, byte [ebp + edi - 0x1a4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1a4]
xor al, byte [ebp + esi - 0x30]
mov byte [ebp + esi - 0xa4], al
inc esi
cmp esi, 0x2c
jb 0xc588b1
xor eax, eax
mov ebx, 0x800
mov ecx, ebx
mov byte [ebp - 0x78], al
call fcn.00c4b9d3
mov ecx, ebx
mov esi, eax
call fcn.00c4b9d3
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 4], eax
call fcn.00c4d05e
lea ecx, [ebp - 0x1c0]
mov dword [ebp - 0x34], eax
call fcn.00c4d05e
lea ecx, [ebp - 0x54]
mov ebx, eax
call fcn.00c4d05e
mov edx, dword [ebp - 0x34]
mov ecx, esi
mov edi, eax
call fcn.00c4d3c1
mov edx, ebx
mov ecx, esi
call fcn.00c4d3c1
mov edx, edi
mov ecx, esi
call fcn.00c4d3c1
push 0x400
push dword [ebp - 4]
xor ecx, ecx
lea edx, [ebp - 0xa4]
push esi
inc ecx
call fcn.00c4ba1b
call eax
push 0x800
xor eax, eax
push eax
push esi
call fcn.00c4cf49
mov ecx, esi
call fcn.00c4ba07
mov esi, dword [ebp - 0x34]
mov ecx, esi
call fcn.00c4d317
push eax
xor eax, eax
push eax
push esi
call fcn.00c4cf49
mov ecx, ebx
call fcn.00c4d317
push eax
xor eax, eax
push eax
push ebx
call fcn.00c4cf49
mov eax, dword [0xc78634]
mov ecx, edi
and eax, 0xe3513d00
mov dword [0xc7868c], eax
call fcn.00c4d317
push eax
xor eax, eax
push eax
push edi
call fcn.00c4cf49
add esp, 0x30
mov ecx, esi
call fcn.00c4ba07
mov ecx, ebx
call fcn.00c4ba07
mov ecx, edi
call fcn.00c4ba07
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
leave
ret