Function at 0xe0c9c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
mov dword [esp + 0x10], ecx
cmp dword [ecx + 4], 0
je 0xe0ca78
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
je 0xe0ca78
mov dword [esp], 0x65647b7a
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 3
ja 0xe0ca31
mov eax, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx]
add eax, 0xabe122ae
xor eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x2b
mov edx, dword [esp + 4]
mov byte [esp + edx], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 4
jb 0xe0ca00
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
mov eax, dword [esp]
mov esi, dword [0x2b7a9d4]
test esi, esi
je 0xe0cb06
mov edi, ebx
xor ebx, ebx
mov edx, dword [0x2b7a9d8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ebx*8], 0xc766965c
je 0xe0cae4
inc ebx
cmp esi, ebx
jne 0xe0ca60
mov ebx, edi
mov edi, dword [ebp + 0xc]
jmp 0xe0cb06
mov dword [esp + 8], 0x23e4e59e
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 6
ja 0xe0cadb
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + ecx]
add edx, 0xfbb696d9
add eax, 0xfbb696d9
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 4], edx
mov eax, dword [esp + 4]
add al, 0xc1
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 7
jb 0xe0caa0
mov eax, dword [esp + 8]
jmp 0xe0cc22
mov edx, dword [edx + ebx*8 + 4]
cmp edx, eax
mov ebx, edi
mov edi, dword [ebp + 0xc]
je 0xe0cb06
push dword [ebp + 8]
push ecx
push 2
push dword [0x2b7a9dc]
push edx
call fcn.00e0e430
add esp, 0x14
cmp edi, 1
mov ecx, ebx
sbb ecx, 0
jl 0xe0cc11
cmp eax, 0xc000010a
jne 0xe0cc11
mov ecx, edi
or ecx, 0xffffd8f0
mov esi, edi
mov edi, ebx
mov ebx, esi
and ebx, 0xffffd8f0
mov eax, ecx
mul ebx
mov dword [esp + 0x18], eax
imul ecx, edi
add edx, ecx
sub edx, ebx
mov ecx, edx
xor ebx, 0xffffd8f0
and esi, 0x270f
mov eax, ebx
mul esi
not edi
imul edi, esi
add edx, edi
add eax, dword [esp + 0x18]
adc edx, ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
mov dword [esp + 0x14], 0x65647b7a
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 3
ja 0xe0cbbe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x14]
add eax, 0xabe122ae
xor eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x2b
mov edx, dword [esp]
mov byte [esp + edx + 0x14], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 4
jb 0xe0cb90
mov eax, dword [esp + 0x14]
mov edx, dword [0x2b7a9d4]
test edx, edx
je 0xe0cc11
xor esi, esi
mov edi, dword [0x2b7a9d8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e28bda7
je 0xe0cbf0
inc esi
cmp edx, esi
jne 0xe0cbe0
jmp 0xe0cc11
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0xe0cc11
lea eax, [esp + 8]
push eax
push 0
push ecx
push 3
push dword [0x2b7a9dc]
push edx
call fcn.00e0e430
add esp, 0x18
test eax, eax
js 0xe0cc22
mov ecx, dword [esp + 0x10]
mov esi, eax
call fcn.00e0c8f0
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc