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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2a0
cmp dword [0xc78cd4], 0
push ebx
push esi
push edi
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x74], ecx
jne 0xc4ba40
call fcn.00c4b9b5
mov dword [0xc78cd4], eax
xor ebx, ebx
cmp dword [0xc78cc8], ebx
jne 0xc4bacf
call fcn.00c4ab6a
mov esi, 0xc718b0
lea edi, [ebp - 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x48], 0x43
jne 0xc4babe
mov al, 0x43
test al, al
je 0xc4ba7f
cmp byte [ebp + ebx - 0x48], 0
je 0xc4ba7f
mov al, byte [ebx + 0xc71c61]
inc ebx
cmp al, byte [ebp + ebx - 0x48]
je 0xc4ba67
mov esi, dword [ebp - 0x60]
cmp esi, ebx
jae 0xc4babe
mov edi, dword [0xc77274]
mov eax, dword [0xc77264]
cmp esi, 0x2603
jne 0xc4baa9
and edi, 0xa31fc1ea
call fcn.00c4b3cf
mov eax, dword [0xc77264]
sub eax, 0x54ce4b87
inc esi
mov dword [0xc77264], eax
cmp esi, ebx
jb 0xc4ba91
mov dword [0xc77274], edi
mov edx, 0x267d6912
call fcn.00c4b911
mov dword [0xc78cc8], eax
xor ebx, ebx
cmp dword [0xc78cd8], 0
jne 0xc4bae7
mov edx, 0x3c59106e
call fcn.00c4b911
mov dword [0xc78cd8], eax
cmp dword [0xc78cd0], 0
jne 0xc4bc77
mov edx, str.Module
mov dword [ebp - 0x38], 0xaf0754a8
mov dword [ebp - 0x34], 0x6cb74375
mov byte [ebp - 0x30], 0xa0
call fcn.00c4b273
mov esi, 0xc6f58c
lea edi, [ebp - 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x4c], 0x43
jne 0xc4bb3e
mov al, 0x43
test al, al
je 0xc4bb3e
cmp byte [ebp + ebx - 0x4c], 0
je 0xc4bb3e
mov al, byte [ebx + 0xc71c61]
inc ebx
cmp al, byte [ebp + ebx - 0x4c]
je 0xc4bb26
call fcn.00c4b3cf
mov esi, dword [ebp - 0x60]
cmp esi, ebx
jae 0xc4bb7d
push ecx
call fcn.00c4b740
pop ecx
cmp esi, 0x1240
jne 0xc4bb65
imul eax, dword [0xc77264], 0xa71b2e3e
jmp 0xc4bb6a
mov eax, dword [0xc77274]
imul ecx, eax, 0xf5701104
inc esi
mov dword [0xc77274], ecx
cmp esi, ebx
jb 0xc4bb4a
jmp 0xc4bb83
mov ecx, dword [0xc77274]
mov esi, 0xc71824
lea edi, [ebp - 0x48]
xor edx, edx
mov eax, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov edi, edx
mov byte [ebp + eax - 0x184], al
inc eax
cmp eax, 0x100
jb 0xc4bb95
mov esi, edx
or ecx, 0xcd33945e
mov bl, byte [ebp + esi - 0x184]
mov dword [ebp - 0x24], ecx
xor edx, edx
mov dword [0xc77274], ecx
mov eax, esi
push 9
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x48]
add eax, edi
add ecx, eax
movzx edi, cl
mov ecx, dword [ebp - 0x24]
mov al, byte [ebp + edi - 0x184]
mov byte [ebp + esi - 0x184], al
inc esi
mov byte [ebp + edi - 0x184], bl
cmp esi, 0x100
jb 0xc4bba6
imul eax, ecx, 0xe10fd2c7
mov dword [0xc77264], eax
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
push 9
mov cl, byte [ebp + edi - 0x184]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x184]
mov byte [ebp + edi - 0x184], al
mov byte [ebp + ebx - 0x184], cl
movzx eax, byte [ebp + edi - 0x184]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x184]
xor al, byte [ebp + esi - 0x38]
mov byte [ebp + esi - 0x84], al
inc esi
pop eax
cmp esi, eax
jb 0xc4bc08
lea eax, [ebp - 0x84]
xor ebx, ebx
push eax
push dword [0xc78cd4]
mov byte [ebp - 0x7b], bl
call dword [0xc78cc8]
mov dword [0xc78cd0], eax
cmp dword [0xc78ccc], 0
jne 0xc4bc8f
mov edx, 0x1145b0f4
call fcn.00c4b911
mov dword [0xc78ccc], eax
mov eax, dword [ebp - 0x74]
cmp eax, 1
jne 0xc4bdd7
mov al, byte [str.Module]
lea edi, [ebp - 0x38]
mov esi, 0xc70054
mov dword [ebp - 0x54], 0x9e71c46e
mov dword [ebp - 0x50], 0x391bc8de
mov dword [ebp - 0x4c], 0x2ac72aab
mov dword [ebp - 0x48], 0x91ffcfe2
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x44], 0xd31483b5
mov dword [ebp - 0x40], 0x47fdf87a
mov dword [ebp - 0x24], ebx
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [0xc77264]
mov edi, dword [0xc77274]
test al, al
je 0xc4bd0b
mov esi, edi
mov edi, str.Module
and esi, 0x54d595f
call fcn.00c4ab6a
inc edi
cmp byte [edi], 0
jne 0xc4bcf5
mov edi, dword [0xc77274]
mov al, byte [str.Module]
mov byte [ebp + ebx - 0x184], bl
inc ebx
cmp ebx, 0x100
jb 0xc4bce4
mov dword [ebp - 0x28], esi
xor edi, edi
mov dl, byte [ebp + edi - 0x184]
mov eax, edi
and eax, 7
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x38]
add eax, dword [ebp - 0x24]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x24], ecx
mov al, byte [ebp + ecx - 0x184]
mov byte [ebp + edi - 0x184], al
inc edi
mov byte [ebp + ecx - 0x184], dl
cmp edi, 0x100
jb 0xc4bd20
xor eax, eax
sub dword [0xc77274], 0x2e72f310
mov esi, eax
mov ebx, eax
mov edi, eax
lea eax, [ebx + 1]
movzx ebx, al
mov cl, byte [ebp + ebx - 0x184]
movzx edx, cl
lea eax, [esi + edx]
movzx esi, al
mov al, byte [ebp + esi - 0x184]
mov byte [ebp + ebx - 0x184], al
mov byte [ebp + esi - 0x184], cl
movzx eax, byte [ebp + ebx - 0x184]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x184]
xor al, byte [ebp + edi - 0x54]
mov byte [ebp + edi - 0x1c], al
inc edi
cmp edi, 0x18
jb 0xc4bd6f
mov esi, dword [ebp - 0x28]
lea ecx, [ebp - 0x1c]
and esi, 0x1bda4002
mov byte [ebp - 4], 0
mov dword [0xc77264], esi
jmp 0xc4c405
cmp eax, 2
jne 0xc4bed7
mov esi, str.SrchCommon
mov dword [ebp - 0x1c], 0x5dc511fd
lea edi, [ebp - 0x48]
mov dword [ebp - 0x18], 0x47d69f79
mov dword [ebp - 0x14], 0x5218a3c2
mov eax, ebx
mov dword [ebp - 0x10], 0x3ef87faf
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0xf0ca6d17
mov dword [ebp - 8], 0x1f2054c6
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [ebp + eax - 0x184], al
inc eax
cmp eax, 0x100
jb 0xc4be1b
push 0xa
mov esi, ebx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x184]
mov eax, esi
div ecx
movzx ecx, bl
push 0xa
movzx eax, byte [ebp + edx - 0x48]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x184]
mov byte [ebp + esi - 0x184], al
inc esi
mov byte [ebp + edi - 0x184], bl
cmp esi, 0x100
jb 0xc4be2f
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
xor dword [0xc77264], 0x8ac13ad9
movzx edi, al
mov cl, byte [ebp + edi - 0x184]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x184]
mov byte [ebp + edi - 0x184], al
mov byte [ebp + ebx - 0x184], cl
movzx eax, byte [ebp + edi - 0x184]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x184]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x54], al
inc esi
cmp esi, 0x18
jb 0xc4be74
mov byte [ebp - 0x3c], 0
lea ecx, [ebp - 0x54]
jmp 0xc4c405
cmp eax, 5
jne 0xc4c1e6
push 9
pop eax
mov ecx, eax
mov dword [ebp - 0x1c], 0x6c0ab12e
mov esi, 0xc6ff18
mov dword [ebp - 0x18], 0x93520f9c
lea edi, [ebp - 0x1a8]
mov dword [ebp - 0x14], 0x4d2bac48
mov dword [ebp - 0x10], 0xbd5d3cf5
mov eax, ebx
mov dword [ebp - 0xc], 0x99dc0da5
mov dword [ebp - 8], 0xf0de6ad9
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x24], ebx
mov byte [ebp + eax - 0x184], al
inc eax
cmp eax, 0x100
jb 0xc4bf21
mov edi, dword [0xc77264]
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + esi - 0x184]
push 0x23
mov eax, esi
imul edi, edi, 0xe60e2fc7
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x1a8]
add eax, dword [ebp - 0x24]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x24], ecx
mov al, byte [ebp + ecx - 0x184]
mov byte [ebp + esi - 0x184], al
inc esi
mov byte [ebp + ecx - 0x184], bl
cmp esi, 0x100
jb 0xc4bf38
mov ebx, dword [0xc77274]
mov esi, 0xc707a4
mov dword [ebp - 0x2c], edi
xor edx, edx
lea edi, [ebp - 0x38]
mov dword [ebp - 0x6c], edx
mov ecx, edx
mov dword [ebp - 0x58], ebx
movsd dword es:[edi], dword [esi]
mov eax, edx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
inc eax
lea edi, [ebp - 0x22c]
movzx eax, al
mov esi, 0xc718c0
mov dword [ebp - 0x24], eax
push 0x12
mov al, byte [ebp + eax - 0x184]
mov byte [ebp - 0x1d], al
movzx eax, al
mov dword [ebp - 0x78], eax
add eax, ecx
pop ecx
rep movsd dword es:[edi], dword [esi]
movzx edx, al
xor eax, eax
mov dword [ebp - 0x70], edx
movsb byte es:[edi], byte [esi]
cmp byte [ebp - 0x22c], 0x43
jne 0xc4c052
mov cl, 0x43
test cl, cl
je 0xc4bffe
cmp byte [ebp + eax - 0x22c], 0
je 0xc4bffe
mov cl, byte [eax + 0xc71c61]
inc eax
cmp cl, byte [ebp + eax - 0x22c]
je 0xc4bfe0
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x5c], eax
jae 0xc4c055
mov esi, eax
push ecx
call fcn.00c4b077
mov eax, dword [ebp - 0x5c]
pop ecx
cmp eax, 0xf69
jne 0xc4c039
lea ebx, [edi - 0x3a33d277]
mov edx, 0xc71e20
push ebx
mov ecx, ebx
mov dword [0xc77274], ebx
call fcn.00c4a98d
mov eax, dword [ebp - 0x5c]
pop ecx
imul edi, ebx, 0xdf31cd3e
inc eax
mov dword [ebp - 0x5c], eax
cmp eax, esi
jb 0xc4c00b
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x58], ebx
jmp 0xc4c055
mov edi, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
mov al, byte [ebp + edx - 0x184]
push ecx
mov byte [ebp + ecx - 0x184], al
mov al, byte [ebp - 0x1d]
mov byte [ebp + edx - 0x184], al
call fcn.00c4b077
mov al, byte [str.Module]
xor esi, esi
pop ecx
cmp al, byte [ebp - 0x38]
jne 0xc4c0a0
test al, al
je 0xc4c0a0
cmp byte [ebp + esi - 0x38], 0
je 0xc4c0a0
call fcn.00c4ade1
mov al, byte [esi + 0xc772dd]
inc esi
cmp al, byte [ebp + esi - 0x38]
je 0xc4c083
call fcn.00c4af33
cmp dword [ebp - 0x64], esi
jae 0xc4c0d4
mov ebx, dword [ebp - 0x64]
call fcn.00c4ab6a
cmp ebx, 0xb8d
jne 0xc4c0c0
sub edi, 0x7223e914
and edi, 0x5f377cb9
inc ebx
cmp ebx, esi
jb 0xc4c0ad
mov dword [ebp - 0x64], ebx
mov ebx, dword [ebp - 0x58]
mov dword [ebp - 0x2c], edi
mov eax, dword [ebp - 0x24]
movzx eax, byte [ebp + eax - 0x184]
add eax, dword [ebp - 0x78]
movzx eax, al
mov al, byte [ebp + eax - 0x184]
mov byte [ebp - 0x1d], al
call fcn.00c4b684
push 0x1c
pop ecx
mov esi, 0xc71910
lea edi, [ebp - 0x2a0]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
push 0x61
mov dword [ebp - 0x28], eax
pop eax
movsw word es:[edi], word [esi]
cmp ax, word [ebp - 0x2a0]
jne 0xc4c14f
xor ebx, ebx
mov ecx, eax
mov eax, ebx
test cx, cx
je 0xc4c14c
cmp word [ebp + eax - 0x2a0], bx
je 0xc4c14c
call fcn.00c4a7e1
mov edx, dword [ebp - 0x28]
inc edx
mov dword [ebp - 0x28], edx
lea eax, [edx + edx]
movzx ecx, word [eax + 0xc71e20]
cmp cx, word [ebp + eax - 0x2a0]
je 0xc4c11d
mov ebx, dword [ebp - 0x58]
call fcn.00c4b5d7
mov esi, dword [ebp - 0x28]
mov eax, dword [ebp - 0x68]
cmp eax, esi
jae 0xc4c1a3
mov edi, dword [ebp - 0x2c]
cmp eax, 0x818
jne 0xc4c17c
lea edi, [ebx + 0x587f29f6]
mov edx, 0xc71e20
push ebx
mov ecx, edi
call fcn.00c4a98d
pop ecx
lea ebx, [edi - 0x2afe0aa]
mov edx, 0xc71c60
mov dword [0xc77274], ebx
call fcn.00c4b273
mov eax, dword [ebp - 0x68]
inc eax
mov dword [ebp - 0x68], eax
cmp eax, esi
jb 0xc4c161
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x58], ebx
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x70]
mov al, byte [ebp + edx - 0x1c]
xor al, byte [ebp - 0x1d]
mov byte [ebp + edx - 0x1c4], al
inc edx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x6c], edx
cmp edx, 0x18
jb 0xc4bfa3
xor eax, eax
lea ecx, [ebp - 0x1c4]
or ebx, 0xbda649dc
mov byte [ebp - 0x1ac], al
mov dword [0xc77264], ebx
jmp 0xc4c405
cmp eax, 6
jne 0xc4c2fe
mov esi, 0xc71710
mov dword [ebp - 0x1c], 0x7a82be00
lea edi, [ebp - 0x4c]
mov dword [ebp - 0x18], 0x86635596
push 9
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 9], al
mov eax, dword [0xc77264]
or eax, 0x274b0d45
mov dword [ebp - 0x14], 0x9c1204d9
movsd dword es:[edi], dword [esi]
mov dword [0xc77274], eax
mov eax, ebx
mov dword [ebp - 0x10], 0x771f425b
mov word [ebp - 0xc], 0x13f9
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0xa], 0xe4
mov dword [ebp - 8], 0xf4581b85
movsw word es:[edi], word [esi]
mov edi, ebx
mov byte [ebp + eax - 0x184], al
inc eax
cmp eax, 0x100
jb 0xc4c242
push 0xd
mov esi, ebx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x184]
mov eax, esi
div ecx
movzx ecx, bl
push 0xd
movzx eax, byte [ebp + edx - 0x4c]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x184]
mov byte [ebp + esi - 0x184], al
inc esi
mov byte [ebp + edi - 0x184], bl
cmp esi, 0x100
jb 0xc4c256
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x184]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x184]
mov byte [ebp + edi - 0x184], al
mov byte [ebp + ebx - 0x184], cl
movzx eax, byte [ebp + edi - 0x184]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x184]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x1e0], al
inc esi
cmp esi, 0x18
jb 0xc4c29b
xor eax, eax
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 0x1c8], al
jmp 0xc4c405
cmp eax, 7
jne 0xc4c450
mov esi, str.no_space_on_device
mov dword [ebp - 0x1c], 0x5cc8d57
lea edi, [ebp - 0x50]
mov dword [ebp - 0x18], 0xe3faa918
mov dword [ebp - 0x14], 0x66a6cde3
mov eax, ebx
mov dword [ebp - 0x10], 0x1c9ea88f
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0x4874579b
mov dword [ebp - 8], 0x7e96eb9b
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [ebp + eax - 0x184], al
inc eax
cmp eax, 0x100
jb 0xc4c344
push 0x12
mov esi, ebx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x184]
mov eax, esi
div ecx
movzx ecx, bl
push 0x12
movzx eax, byte [ebp + edx - 0x50]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x184]
mov byte [ebp + esi - 0x184], al
inc esi
mov byte [ebp + edi - 0x184], bl
cmp esi, 0x100
jb 0xc4c358
xor eax, eax
mov ebx, eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
or dword [0xc77274], 0x7af7df2b
movzx edi, al
mov cl, byte [ebp + edi - 0x184]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x184]
mov byte [ebp + edi - 0x184], al
mov byte [ebp + ebx - 0x184], cl
movzx eax, byte [ebp + edi - 0x184]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x184]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x1a0], al
inc esi
cmp esi, 0x18
jb 0xc4c39d
xor eax, eax
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 0x188], al
call fcn.00c4d02f
mov edi, dword [ebp - 0x74]
mov esi, eax
mov ebx, dword [edi*4 + 0xc78d20]
test ebx, ebx
jne 0xc4c42a
push esi
call dword [0xc78cd8]
mov ebx, eax
mov dword [edi*4 + 0xc78d20], ebx
mov ecx, esi
call fcn.00c4ba07
mov ecx, dword [ebp - 0x60]
call fcn.00c4d02f
mov edi, eax
push edi
push ebx
call dword [0xc78cc8]
mov ecx, edi
mov esi, eax
call fcn.00c4ba07
mov eax, esi
jmp 0xc4c452
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret