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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x19c
push ebx
push esi
push edi
xor edi, edi
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x50], ecx
xor eax, eax
mov dword [ebp - 0x48], 0xfe2e870
mov dword [ebp - 0x44], 0x556106c6
mov dword [ebp - 0x40], 0xefb3e843
mov dword [ebp - 0x3c], 0x2ef5d2cb
mov dword [ebp - 0x38], 0xb1e23f94
mov dword [ebp - 0x34], 0x952e0043
mov dword [ebp - 0x30], 0x49e43303
mov dword [ebp - 0x2c], 0x4dc69518
mov dword [ebp - 0x28], 0xbf09a2a5
mov dword [ebp - 0x24], 0xdbac0b46
mov dword [ebp - 0x20], 0x48fb1387
mov dword [ebp - 0x1c], 0xd9b5c189
mov dword [ebp - 0x18], 0xf17895a4
mov dword [ebp - 0x14], 0x57598bf1
mov dword [ebp - 0x10], 0x9b4e4179
mov dword [ebp - 0xc], 0x7da979e5
mov dword [ebp - 0x58], 0x7373656d
mov dword [ebp - 0x54], 0x656761
mov byte [ebp + eax - 0x19c], al
inc eax
cmp eax, 0x100
jb 0xc5dcae
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x19c]
push 7
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x58]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x19c]
mov byte [ebp + esi - 0x19c], al
inc esi
mov byte [ebp + edi - 0x19c], bl
cmp esi, 0x100
jb 0xc5dcbf
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x19c]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x19c]
mov byte [ebp + edi - 0x19c], al
mov byte [ebp + ebx - 0x19c], cl
movzx eax, byte [ebp + edi - 0x19c]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x19c]
xor al, byte [ebp + esi - 0x48]
mov byte [ebp + esi - 0x9c], al
inc esi
cmp esi, 0x40
jb 0xc5dd02
mov ecx, 0x104
mov byte [ebp - 0x5c], 0
mov byte [ebp - 1], 0
call fcn.00c4b9d3
mov edi, eax
lea edx, [ebp - 0x9c]
mov ecx, edi
call fcn.00c4d328
xor eax, eax
xor esi, esi
mov dword [ebp - 0x54], eax
cmp dword [ebp + 8], eax
jbe 0xc5de4b
mov edx, dword [ebp - 0x50]
mov cl, al
mov al, byte [eax + edx]
mov ebx, dword [ebp - 0x4c]
movzx ecx, cl
mov byte [ebp + ecx - 8], al
mov cl, byte [ebp - 1]
inc cl
mov byte [ebp - 1], cl
cmp cl, 3
jne 0xc5ddf2
movzx ecx, byte [ebp - 8]
movzx edx, byte [ebp - 7]
mov eax, ecx
shr eax, 2
and ecx, 3
add ecx, ecx
mov al, byte [eax + edi]
mov byte [esi + ebx], al
mov eax, edx
shr eax, 4
and edx, 0xf
add eax, edi
mov al, byte [eax + ecx*8]
movzx ecx, byte [ebp - 6]
mov byte [esi + ebx + 1], al
mov eax, ecx
shr eax, 6
and ecx, 0x3f
add eax, edi
mov al, byte [eax + edx*4]
mov edx, dword [ebp - 0x50]
mov byte [esi + ebx + 2], al
mov al, byte [ecx + edi]
mov byte [esi + ebx + 3], al
add esi, 4
xor cl, cl
mov byte [ebp - 1], cl
mov eax, dword [ebp - 0x54]
inc eax
mov dword [ebp - 0x54], eax
cmp eax, dword [ebp + 8]
jb 0xc5dd88
test cl, cl
je 0xc5de4b
movzx edx, byte [ebp - 8]
mov eax, edx
and edx, 3
shr eax, 2
add edx, edx
mov al, byte [eax + edi]
mov byte [esi + ebx], al
cmp cl, 1
jne 0xc5de27
mov al, byte [edi + edx*8]
add cl, 0x5e
mov byte [esi + ebx + 1], al
jmp 0xc5de3f
movzx ecx, byte [ebp - 7]
mov eax, ecx
shr eax, 4
add eax, edi
and ecx, 0xf
mov al, byte [eax + edx*8]
mov byte [esi + ebx + 1], al
mov cl, byte [edi + ecx*4]
mov byte [esi + ebx + 2], cl
mov byte [esi + ebx + 3], 0x5f
add esi, 4
mov eax, dword [ebp - 0x4c]
mov ecx, edi
mov byte [esi + eax], 0
call fcn.00c4ba07
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret