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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1fc
push ebx
push esi
push edi
push 0x19
pop eax
mov dword [ebp - 0x90], ecx
lea edi, [ebp - 0xbc]
push 6
pop ecx
mov esi, 0xc7109c
mov dword [ebp - 0xa0], edx
rep movsd dword es:[edi], dword [esi]
xor ebx, ebx
mov dword [ebp - 0x48], 0xd86b06c0
mov dword [ebp - 0x44], 0x8b619979
mov dword [ebp - 0x40], 0x852c2d50
movsw word es:[edi], word [esi]
mov dword [ebp - 0x3c], 0x71d95250
mov edi, ebx
mov byte [ebp - 0x38], al
mov dword [ebp - 0x37], 0x12d7180b
mov dword [ebp - 0x33], 0xb8a895f7
mov dword [ebp - 0x2f], 0x94d1f30
mov dword [ebp - 0x2b], 0xc52d883e
mov dword [ebp - 0x27], 0x98b87d34
mov dword [ebp - 0x23], 0x33d81fad
mov dword [ebp - 0x1f], 0xe7eaa6a7
mov dword [ebp - 0x1b], 0xbaa11439
mov dword [ebp - 0x17], 0x3a1b8936
mov dword [ebp - 0x13], 0xd6a3609
mov dword [ebp - 0xf], 0x86df132a
call fcn.00c49ad5
mov eax, dword [0xc7720c]
mov ecx, ebx
or eax, 0xdf79fcc3
inc ecx
cmp word [ecx*2 + 0xc71480], bx
jne 0xc4a42e
cmp ecx, 0x866
jbe 0xc4a451
imul eax, eax, 0xe497bd20
mov dword [ebp - 4], eax
jmp 0xc4a46c
push ecx
add eax, 0x6c2d2cec
push ecx
mov ecx, 0xc71480
mov dword [ebp - 4], eax
mov dword [0xc7720c], eax
call fcn.00c493e9
pop ecx
pop ecx
mov eax, ebx
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xc4a46e
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
push 0x19
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0xbc]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov byte [ebp + edi - 0x1bc], bl
cmp esi, 0x100
jb 0xc4a47f
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1bc]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov byte [ebp + ebx - 0x1bc], cl
movzx eax, byte [ebp + edi - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 0x48]
mov byte [ebp + esi - 0x1fc], al
inc esi
cmp esi, 0x3d
jb 0xc4a4c7
push 6
pop ecx
mov esi, 0xc704d0
mov dword [ebp - 0x80], 0xb7604a35
lea edi, [ebp - 0xbc]
mov dword [ebp - 0x7c], 0xe183f35b
rep movsd dword es:[edi], dword [esi]
xor edx, edx
mov dword [ebp - 0x78], 0x47dc74e4
mov byte [ebp - 0x1bf], dl
mov eax, edx
mov dword [ebp - 0x74], 0x45345032
movsw word es:[edi], word [esi]
mov esi, dword [ebp - 4]
mov dword [ebp - 0x70], 0xa6be64bb
and esi, 0xb7028579
mov dword [ebp - 0x6c], 0x2cea8b71
mov dword [ebp - 0x68], 0xa9539ebd
mov dword [ebp - 0x64], 0x51ed8932
mov dword [ebp - 0x60], 0x740725cd
mov dword [ebp - 0x5c], 0xc074dee
mov dword [ebp - 0x58], 0x60e072bf
mov dword [ebp - 0x54], 0xcf151a25
mov dword [ebp - 0x50], 0xd1690774
mov byte [ebp - 0x4c], 0xe1
mov dword [ebp - 4], edx
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xc4a59e
mov edi, edx
xor edx, edx
mov bl, byte [ebp + edi - 0x1bc]
push 0x19
mov eax, edi
xor esi, 0x6c4ab37a
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0xbc]
add eax, dword [ebp - 4]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 4], ecx
mov al, byte [ebp + ecx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
inc edi
mov byte [ebp + ecx - 0x1bc], bl
cmp edi, 0x100
jb 0xc4a5af
xor ecx, ecx
mov ebx, esi
mov edi, ecx
mov dword [ebp - 0x8c], ecx
mov edx, ecx
jmp 0xc4a60b
xor ecx, ecx
lea eax, [edx + 1]
movzx eax, al
mov dword [ebp - 0x98], eax
mov al, byte [ebp + eax - 0x1bc]
mov byte [ebp - 5], al
movzx eax, al
mov dword [ebp - 0x9c], eax
add eax, edi
movzx eax, al
mov edi, ecx
mov dword [ebp - 0x94], eax
push esi
mov edx, esi
mov ecx, 0xc71480
call fcn.00c493ab
imul esi, ebx, 0x808824e7
add esp, 4
inc edi
xor eax, eax
mov ebx, esi
cmp word [edi*2 + 0xc71480], ax
jne 0xc4a637
call fcn.00c4953a
cmp dword [ebp - 4], edi
jae 0xc4a6b1
mov dword [ebp - 0x84], esi
call fcn.00c49ad5
cmp dword [ebp - 4], 0x47f
mov esi, dword [ebp - 0x84]
jne 0xc4a68d
call fcn.00c49995
mov esi, ebx
or esi, 0x71e39fd1
xor esi, 0x1c2d7025
mov ebx, esi
mov dword [0xc7720c], esi
call fcn.00c49067
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 0x84], ebx
mov dword [ebp - 4], eax
cmp eax, edi
jb 0xc4a66c
call fcn.00c49995
xor eax, eax
mov edi, eax
and esi, 0x5eea8965
inc edi
cmp word [edi*2 + 0xc710c0], ax
jne 0xc4a6ba
push ecx
push ecx
mov ecx, 0xc710c0
mov dword [0xc7720c], esi
call fcn.00c493e9
mov eax, dword [ebp - 0x88]
pop ecx
pop ecx
cmp eax, edi
jae 0xc4a722
mov ebx, esi
mov ecx, esi
mov esi, ecx
cmp eax, 0xa42
jne 0xc4a707
call fcn.00c4953a
mov eax, dword [ebp - 0x88]
lea esi, [ebx + 0x25b30cf1]
or esi, 0xc9245ea2
inc eax
mov dword [0xc7720c], esi
mov ebx, esi
mov dword [ebp - 0x88], eax
mov ecx, ebx
cmp eax, edi
jb 0xc4a6ed
mov edi, dword [ebp - 0x94]
xor esi, 0x8100170
mov edx, dword [ebp - 0x98]
or esi, 0xb2abda0f
mov ecx, dword [ebp - 0x8c]
mov ebx, esi
mov dword [0xc7720c], esi
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + edx - 0x1bc], al
mov al, byte [ebp - 5]
mov byte [ebp + edi - 0x1bc], al
movzx eax, byte [ebp + edx - 0x1bc]
add eax, dword [ebp - 0x9c]
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + ecx - 0x80]
mov byte [ebp + ecx - 0x44], al
inc ecx
mov dword [ebp - 0x8c], ecx
cmp ecx, 0x35
jb 0xc4a609
mov ecx, dword [ebp - 0xa0]
xor eax, eax
mov ebx, dword [ebp - 0x90]
mov byte [ebp - 0xf], al
test ecx, ecx
je 0xc4a7b4
cmp byte [eax + ebx], 0x5f
jne 0xc4a7af
mov byte [eax + ebx], 0x3d
inc eax
cmp eax, ecx
jb 0xc4a7a5
mov ecx, ebx
call fcn.00c4d309
mov edx, eax
call fcn.00c5de60
lea ecx, [ebp - 0x44]
mov edx, eax
push ecx
lea ecx, [ebp - 0x1fc]
push ecx
mov ecx, ebx
call fcn.00c5daad
pop ecx
pop ecx
pop edi
pop esi
mov byte [eax + ebx], 0
pop ebx
leave
ret