Function at 0xcecb30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x118
movaps xmm0, xmmword [0xd0deb0]
movups xmmword [esp + 0x30], xmm0
movsd xmm0, qword [0xd0dec0]
movsd qword [esp + 0x40], xmm0
mov dword [esp + 0x48], 0x6b57690d
lea eax, [esp + 0x4c]
mov word [esp + 0x4c], 0x656a
mov dword [esp + 0x4e], 0
mov byte [esp + 0x52], 0
mov dword [esp + 0x94], 0
mov ecx, dword [esp + 0x94]
cmp ecx, 0x22
ja 0xcecbf9
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x94]
movzx esi, byte [esp + edx + 0x30]
lea edi, [ecx - 0x594c8c35]
lea edx, [ecx + esi]
add edx, 0xa6b373cb
and edi, esi
add ecx, 0xcb
and ecx, esi
add ecx, edi
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xc8]
add cl, 0x73
mov edx, dword [esp + 0x94]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x94]
mov ecx, dword [esp + 0x94]
cmp ecx, 0x23
jb 0xcecb90
lea edi, [esp + 0x94]
lea edx, [esp + 0x30]
mov ecx, 7
mov esi, edi
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xb0]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0xc]
push edi
push 0
push 0
push 0xe
push esi
push 0
call dword [0xd19608]
mov esi, dword [esp + 0xc]
lea eax, [esi + esi]
test esi, esi
mov ebx, 0xffffffff
cmovs eax, ebx
push eax
call fcn.00cd8c00
add esp, 4
push edi
push esi
mov dword [esp + 0x34], eax
push eax
push 0xe
lea eax, [esp + 0xa4]
push eax
push 0
call dword [0xd19608]
movaps xmm0, xmmword [0xd0ded0]
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0x2320219b
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0
mov word [esp + 0x48], 0
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
cmp ecx, 0x19
ja 0xcecd02
nop word cs:[eax + eax]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + edx]
add esi, 0x229dd5b3
add ecx, 0xb3
and ecx, edx
add ecx, ecx
mov edx, ecx
xor edx, esi
not ecx
and ecx, esi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xc8]
add cl, 0x1b
mov edx, dword [esp + 0x10]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
cmp ecx, 0x1a
jb 0xceccb0
lea edi, [esp + 0xb4]
lea edx, [esp + 0x30]
mov ecx, 5
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xc8]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, dword [esp + 0xc]
add eax, 0xa
mov ecx, eax
xor ecx, 0xfffffffe
and eax, 0xfffffffe
lea edx, [ecx + eax*2]
lea eax, [ecx + eax*2]
inc eax
test eax, eax
lea eax, [edx + edx + 2]
cmovns ebx, eax
push ebx
call fcn.00cd8c00
add esp, 4
mov esi, eax
mov ebx, dword [esp + 0x2c]
movzx ecx, word [ebx]
test cx, cx
je 0xcecd81
lea edx, [ebx + 2]
mov eax, esi
nop word cs:[eax + eax]
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0xcecd70
mov word [eax], 0
movzx ecx, word [esp + 0xb4]
test cx, cx
je 0xcecdb1
lea edx, [esp + 0xb6]
nop word [eax + eax]
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0xcecda0
mov edi, dword [ebp + 8]
mov word [eax], 0
lea eax, [esp + 0x90]
push eax
push esi
call fcn.00d09fb0
add esp, 8
not eax
shr eax, 0x1f
mov eax, dword [eax*4 + 0xd13610]
mov ecx, 0xd510e395
xor ecx, dword [0xd13618]
add eax, ecx
inc eax
jmp eax
push ebx
rol dword [eax], 1
mov edi, 0x82fe8ec8
xor ecx, edi
add eax, ecx
inc eax
jmp eax
mov word [eax], cs
cmp eax, 0x643d8b4f
push ebx
rol dword [eax], 1
xor edi, eax
add edx, edi
inc edx
lea ebx, [esi + 0x50]
jmp edx