Function at 0x4ce760
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x14
push ebx
push ebp
push esi
push 0x14
call fcn.005354b8
xor esi, esi
add esp, 4
cmp eax, esi
je 0x4ce77d
mov dword [eax], esi
mov dword [eax + 4], esi
mov esi, eax
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
push eax
push fcn.004d1fb0
call fcn.0050d270
mov ecx, dword [esi]
xor ebp, ebp
cmp ecx, ebp
je 0x4ce79d
inc dword [ecx + 4]
cmp ecx, ebp
sete bl
cmp ecx, ebp
je 0x4ce7af
dec dword [ecx + 4]
jne 0x4ce7af
mov edx, dword [ecx]
push 1
call dword [edx]
test bl, bl
je 0x4ce7d3
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x14]
push ecx
push ebp
push ebp
push str.empty.dds
call fcn.004ceb00
add esp, 0x14
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
push edi
push ebp
call fcn.0050d340
mov edi, dword [esi]
test edi, edi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebp
je 0x4ce7eb
inc dword [edi + 4]
mov ecx, dword [edi + 0x2c]
mov edx, dword [ecx]
call dword [edx + 0x28]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], eax
dec dword [edi + 4]
jne 0x4ce807
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
push 0x50
call fcn.005354b8
add esp, 4
test eax, eax
je 0x4ce83e
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push 1
push 0x729484
push ecx
push edx
mov ecx, eax
call fcn.0053a910
test eax, eax
je 0x4ce83e
mov ecx, dword [eax + 4]
inc ecx
mov dword [esp + 0x10], eax
mov dword [eax + 4], ecx
mov ebp, eax
push ebp
call fcn.0054c760
add esp, 4
test eax, eax
je 0x4ce856
mov ecx, dword [eax + 4]
inc ecx
mov dword [esp + 0x14], eax
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x18]
mov eax, dword [0x8ec08c]
test eax, eax
mov ebx, dword [ecx + 0xc]
je 0x4ce874
mov edx, dword [0x729c30]
mov eax, dword [edx + 0x60]
jmp 0x4ce876
xor eax, eax
mov edx, dword [esp + 0x18]
mov ecx, dword [eax]
push ebx
push edx
push eax
call dword [ecx + 0x80]
call fcn.0050d200
push esi
call sub.MSVCR71.dll_void___cdecl_operator_delete_void__
mov eax, dword [ebx]
add esp, 4
push 0
push 0
lea ecx, [esp + 0x24]
push ecx
push ebx
call dword [eax + 0x34]
mov edx, dword [ebp + 0x40]
mov ecx, dword [ebp + 0x34]
mov edx, dword [edx]
mov eax, dword [esp + 0x2c]
add edx, ecx
xor ebp, ebp
test eax, eax
jle 0x4ce915
mov ecx, dword [esp + 0x1c]
lea ebx, [ebx]
mov edi, dword [esp + 0x20]
mov esi, ecx
imul esi, ebp
mov eax, ecx
shr ecx, 2
add esi, edi
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
xor eax, eax
test ecx, ecx
jle 0x4ce90a
mov cl, byte [eax + edx + 2]
xor byte [eax + edx], cl
mov cl, byte [eax + edx]
xor byte [eax + edx + 2], cl
mov cl, byte [eax + edx + 2]
xor byte [eax + edx], cl
mov byte [eax + edx + 3], 0xff
mov ecx, dword [esp + 0x1c]
add eax, 4
cmp eax, ecx
jl 0x4ce8e5
mov eax, dword [esp + 0x2c]
add edx, ecx
inc ebp
cmp ebp, eax
jl 0x4ce8c0
mov edx, dword [ebx]
push ebx
call dword [edx + 0x38]
mov esi, dword [esp + 0x10]
push 0x7199a4
push esi
call fcn.0053b400
mov edi, eax
mov eax, dword [esi + 4]
add esp, 8
dec eax
mov dword [esi + 4], eax
jne 0x4ce940
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
mov ecx, dword [esp + 0x14]
dec dword [ecx + 4]
jne 0x4ce94f
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret