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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c0
push ebx
push esi
push edi
push 5
pop eax
mov dword [ebp - 0x28], ecx
lea edi, [ebp - 0x44]
mov ecx, eax
mov dword [ebp - 0x2c], edx
mov esi, 0xc70198
mov dword [ebp - 0x18], 0xa2ebe1f3
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], 0xf29c104e
mov dword [ebp - 0x10], 0x5de4faa7
mov dword [ebp - 0xc], 0x5a42cb70
movsb byte es:[edi], byte [esi]
xor edi, edi
mov dword [ebp - 8], 0x2184d8b2
mov dword [ebp - 4], 0x64dc7a92
xor eax, eax
mov byte [ebp + eax - 0x148], al
inc eax
cmp eax, 0x100
jb 0xc56bd6
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x148]
push 0x14
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x44]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x148]
mov byte [ebp + esi - 0x148], al
inc esi
mov byte [ebp + edi - 0x148], bl
cmp esi, 0x100
jb 0xc56be7
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x148]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x148]
mov byte [ebp + edi - 0x148], al
mov byte [ebp + ebx - 0x148], cl
movzx eax, byte [ebp + edi - 0x148]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x148]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x48], al
inc esi
cmp esi, 0x18
jb 0xc56c2a
push 0xf
pop ecx
mov esi, 0xc73550
lea edi, [ebp - 0x1c0]
rep movsd dword es:[edi], dword [esi]
xor ebx, ebx
mov byte [ebp - 0x30], bl
movsw word es:[edi], word [esi]
cmp byte [ebp - 0x1c0], 0x49
jne 0xc56cc3
mov al, 0x49
mov esi, ebx
test al, al
je 0xc56cc3
cmp byte [ebp + esi - 0x1c0], bl
je 0xc56cc3
mov ecx, dword [0xc786fc]
call fcn.00c56618
mov al, byte [esi + 0xc73c3d]
inc esi
cmp al, byte [ebp + esi - 0x1c0]
je 0xc56c9b
push ebx
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], ebx
push eax
push ebx
push 0xf003f
push ebx
push ebx
push ebx
push dword [ebp - 0x28]
lea edx, [ebp - 0x48]
push 0x80000001
push 6
pop ecx
call fcn.00c4ba1b
call eax
test eax, eax
jne 0xc56f2d
push 0xe
pop ecx
mov esi, str.onecoreuap_baseAppModelSearchcommoninclude_tpslist.hxx
mov dword [ebp - 0x18], 0x73bdbe48
lea edi, [ebp - 0x1c0]
mov dword [ebp - 0x14], 0xac6c09b3
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], 0xf15004e2
mov eax, ebx
mov dword [ebp - 0xc], 0xaac7d17d
mov dword [ebp - 8], 0x1859077a
movsw word es:[edi], word [esi]
mov dword [ebp - 4], 0xd79f16b8
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [ebp + eax - 0x148], al
inc eax
cmp eax, 0x100
jb 0xc56d32
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x148]
push 0x3a
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x1c0]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x148]
mov byte [ebp + esi - 0x148], al
inc esi
mov byte [ebp + edi - 0x148], bl
cmp esi, 0x100
jb 0xc56d43
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x148]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x148]
mov byte [ebp + edi - 0x148], al
mov byte [ebp + ebx - 0x148], cl
movzx eax, byte [ebp + edi - 0x148]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x148]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x164], al
inc esi
cmp esi, 0x18
jb 0xc56d89
push 5
pop eax
mov byte [ebp - 1], al
xor ebx, ebx
mov eax, dword [0xc6f704]
mov dword [ebp - 0x28], eax
mov ax, word [0xc6f708]
mov word [ebp - 0x24], ax
xor eax, eax
mov byte [ebp - 0x14c], 0
mov dword [ebp - 0x18], 0xb8730fc9
mov dword [ebp - 0x14], 0xca7ab478
mov dword [ebp - 0x10], 0x6535f19d
mov dword [ebp - 0xc], 0xe6657292
mov dword [ebp - 8], 0xb362ce61
mov word [ebp - 4], 0x31f3
mov byte [ebp - 2], 0x8e
mov byte [ebp + eax - 0x148], al
inc eax
cmp eax, 0x100
jb 0xc56e29
xor esi, esi
push 5
xor edx, edx
mov cl, byte [ebp + esi - 0x148]
pop edi
mov eax, esi
mov byte [ebp - 0x19], cl
div edi
movzx ecx, cl
mov edi, str.Interface
movzx eax, byte [ebp + edx - 0x28]
add eax, ebx
add ecx, eax
movzx ebx, cl
call fcn.00c56a87
inc edi
cmp byte [edi], 0
jne 0xc56e61
mov al, byte [ebp + ebx - 0x148]
mov byte [ebp + esi - 0x148], al
inc esi
mov al, byte [ebp - 0x19]
mov byte [ebp + ebx - 0x148], al
cmp esi, 0x100
jb 0xc56e3a
xor ebx, ebx
xor edi, edi
xor esi, esi
sub dword [0xc786fc], 0x784024c8
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x148]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x148]
mov byte [ebp + edi - 0x148], al
mov byte [ebp + ebx - 0x148], cl
movzx eax, byte [ebp + edi - 0x148]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x148]
xor al, byte [ebp + esi - 0x18]
mov byte [ebp + esi - 0x180], al
inc esi
cmp esi, 0x18
jb 0xc56e9d
mov ecx, dword [ebp + 8]
mov byte [ebp - 0x168], 0
call fcn.00c4d317
add eax, eax
lea edx, [ebp - 0x164]
push eax
push ecx
push 1
push 0
push dword [ebp - 0x2c]
push dword [ebp - 0x20]
push 6
pop ecx
call fcn.00c4ba1b
call eax
push dword [ebp - 0x20]
lea edx, [ebp - 0x180]
push 6
pop ecx
call fcn.00c4ba1b
call eax
pop edi
pop esi
pop ebx
leave
ret