Function at 0x1ce747f
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov eax, dword [ebp + 8]
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x2c], ecx
mov ebx, dword [eax + 8]
lea eax, [edi + ebx]
test ebx, ebx
jle 0x1ce74ce
movdqa xmm0, xmmword [0x1eb2f90]
movdqa xmm1, xmmword [0x1eb2fa0]
mov ecx, edi
movdqu xmm2, xmmword [ecx]
pxor xmm3, xmm3
pcmpgtb xmm3, xmm2
pand xmm3, xmm0
pxor xmm3, xmm1
movdqu xmmword [ecx], xmm3
add ecx, 0x10
cmp ecx, eax
jb 0x1ce74af
movq xmm0, qword [edi]
movq xmm1, qword [edi + 7]
movq qword [eax + 8], xmm1
movq qword [eax + 1], xmm0
mov byte [edi + ebx], 0xff
test ebx, ebx
je 0x1ce76b4
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x34], edx
mov eax, dword [eax + 8]
mov dword [ebp - 0x24], eax
xor esi, esi
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x1c], ecx
cmp byte [edi + esi], 0xfe
jne 0x1ce75c3
mov dword [ebp - 0x20], esi
mov ecx, dword [ebp - 0x34]
mov esi, eax
call dword [section..00cfg]
mov dword [ebp - 0x18], esi
push esi
mov esi, dword [ebp + 8]
push esi
call ecx
add esp, 8
mov edx, eax
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov dword [ebp - 0x10], edx
shr edx, 7
mov ebx, eax
shr ebx, 0xc
xor ebx, edx
and ebx, ecx
movdqu xmm0, xmmword [eax + ebx]
pcmpeqd xmm1, xmm1
pcmpgtb xmm1, xmm0
pmovmskb esi, xmm1
mov edx, ebx
test esi, esi
jne 0x1ce7581
mov edi, 0x10
mov edx, ebx
add edx, edi
and edx, ecx
movdqu xmm0, xmmword [eax + edx]
pcmpeqd xmm1, xmm1
pcmpgtb xmm1, xmm0
pmovmskb esi, xmm1
add edi, 0x10
test esi, esi
je 0x1ce7565
bsf esi, esi
add esi, edx
and esi, ecx
mov edx, esi
sub edx, ebx
mov edi, dword [ebp - 0x20]
sub edi, ebx
xor edi, edx
mov ebx, dword [ebp - 0x38]
and edi, ebx
cmp edi, 0xf
ja 0x1ce75d3
mov edi, ebx
mov ebx, dword [ebp - 0x10]
and bl, 0x7f
mov esi, dword [ebp - 0x20]
mov byte [eax + esi], bl
lea edx, [esi - 0xf]
and edx, ecx
and ecx, 0xf
add edx, eax
mov byte [ecx + edx], bl
mov ebx, edi
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
inc esi
add eax, ecx
cmp esi, ebx
jne 0x1ce750c
jmp 0x1ce76b4
mov edx, esi
imul edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x2c]
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x10]
and dl, 0x7f
mov dword [ebp - 0x10], edx
lea edx, [esi - 0xf]
and edx, ecx
and ecx, 0xf
add edx, eax
mov dword [ebp - 0x30], edx
mov edi, dword [ebp - 0x28]
cmp byte [edi + esi], 0x80
mov edx, dword [ebp - 0x10]
mov byte [eax + esi], dl
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x30]
mov byte [ecx + edx], al
jne 0x1ce765b
mov ecx, dword [ebp - 0x24]
call dword [section..00cfg]
push dword [ebp - 0x18]
push dword [ebp - 0x14]
mov esi, dword [ebp + 8]
push esi
call ecx
add esp, 0xc
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov esi, dword [ebp - 0x20]
mov dl, 0x80
mov byte [eax + esi], dl
lea edx, [esi - 0xf]
and edx, ecx
add edx, eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x18]
and ecx, 0xf
mov dword [ebp - 0x10], ecx
mov cl, 0x80
mov edx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
mov byte [edx + edi], cl
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
jmp 0x1ce75c3
mov ecx, dword [ebp - 0x24]
call dword [section..00cfg]
push dword [ebp - 0x14]
mov eax, dword [ebp + 0x10]
push eax
mov esi, dword [ebp + 8]
push esi
mov esi, ecx
call ecx
add esp, 0xc
mov ecx, esi
call dword [section..00cfg]
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push dword [ebp + 8]
call esi
add esp, 0xc
mov ecx, esi
call dword [section..00cfg]
push dword [ebp + 0x10]
mov esi, dword [ebp - 0x18]
push esi
push dword [ebp + 8]
call dword [ebp - 0x24]
mov eax, esi
add esp, 0xc
mov esi, dword [ebp - 0x20]
dec esi
mov ecx, dword [ebp - 0x1c]
sub eax, ecx
jmp 0x1ce75c3
mov esi, dword [ebp + 8]
mov eax, dword [esi]
mov ecx, dword [esi + 8]
mov edx, ecx
shr edx, 3
mov esi, dword [esi + 0xc]
shr esi, 1
add esi, edx
sub ecx, esi
mov dword [eax - 4], ecx
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret