Function at 0xce30db
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
push ebx
push esi
push edi
xor eax, eax
push 0x41
push eax
mov byte [ebp - 0x6c], al
lea eax, [ebp - 0x6b]
push eax
call fcn.00cd1c8d
mov ecx, dword [0xd2a5d8]
mov esi, dword [0xd2a5e0]
add esp, 0xc
mov eax, ecx
not eax
test al, 0xfa
push 0
pop eax
setne al
add ecx, ecx
xor esi, 0x46c2e830
or esi, 0xaa0ad5c
push 0
mov edx, 0x80000000
mov dword [ebp - 0x28], edx
or ecx, eax
mov eax, ecx
not eax
test al, 0xfa
pop eax
cmove eax, edx
mov edx, dword [0xd2a610]
shr ecx, 1
or ecx, eax
test edx, edx
jne 0xce3143
inc esi
cmp dword [0xd2a5f0], 0
jne 0xce314d
inc esi
mov eax, dword [0xd2a5e8]
or dword [0xd2a5ec], eax
xor ebx, ebx
inc ebx
or esi, ebx
cmove esi, ebx
inc edx
test esi, esi
mov eax, 0x72e146b0
cmove edx, eax
mov dword [ebp - 0x1c], 0xd1e700
mov dword [0xd2a610], edx
test edx, edx
jne 0xce317d
inc esi
mov eax, ecx
not eax
test al, 0xfa
mov ebx, dword [ebp + 0x20]
push 0
pop eax
setne al
lea edi, [ecx + ecx]
mov ecx, dword [ebp + 0x1c]
or edi, eax
cmp esi, 0x692b6c0
mov eax, 0x65180b40
cmove esi, eax
xor edx, 0x2a91950
or edx, 0xb945ca90
test cl, 0x40
mov eax, 0xd1e728
cmove eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
xor eax, eax
inc eax
or edx, eax
mov dword [0xd2a5e0], esi
mov ebx, dword [ebx]
test esi, esi
cmove esi, eax
mov dword [0xd2a5d8], edi
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x10], edx
mov dword [0xd2a610], edx
mov dword [ebp - 0x18], esi
mov dword [0xd2a5e0], esi
test cl, 0x10
je 0xce31f5
and ecx, 0xfffffffe
mov dword [ebp + 0x1c], ecx
mov eax, dword [ebp + 0x10]
add eax, 0xfffffffe
cmp eax, 0x22
ja 0xce35db
mov al, cl
and al, 1
or al, 2
shl al, 4
mov byte [ebp - 2], al
mov eax, edi
not eax
test al, 0xfa
push 0
pop ecx
mov eax, 0x80000000
cmove ecx, eax
shr edi, 1
or ecx, edi
mov eax, ecx
not eax
test al, 0xfa
push 0
mov edi, 0x80000000
pop eax
cmove eax, edi
mov edi, dword [ebp + 0x14]
shr ecx, 1
or eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x1c]
mov byte [ebp - 1], 0
mov dword [ebp - 8], ecx
test al, 2
je 0xce329d
test ecx, ecx
jns 0xce326e
mov eax, dword [0xd2a5e8]
or dword [0xd2a5ec], eax
mov eax, dword [ebp + 0x1c]
neg ecx
mov byte [ebp - 1], 0x2d
mov dword [ebp - 8], ecx
jmp 0xce329c
test al, 4
je 0xce3294
dec edi
or edx, 1
mov byte [ebp - 1], 0x2b
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x10], edx
mov dword [0xd2a610], edx
jne 0xce32a0
inc esi
mov dword [ebp - 0x18], esi
mov dword [0xd2a5e0], esi
jmp 0xce32a0
test al, 8
je 0xce329d
mov byte [ebp - 1], 0x20
dec edi
mov dword [ebp - 0xc], edi
and eax, 0x20
mov dword [ebp - 0x24], eax
je 0xce32be
mov eax, dword [ebp + 0x10]
cmp eax, 0x10
jne 0xce32b5
sub edi, 2
jmp 0xce32bb
cmp eax, 8
jne 0xce32be
dec edi
mov dword [ebp - 0xc], edi
mov eax, dword [ebp - 0x14]
not eax
test al, 0xfa
mov eax, dword [ebp - 0x14]
push 0
pop edx
setne dl
add eax, eax
or edx, eax
test ecx, ecx
mov ecx, dword [0xd2a600]
mov dword [ebp - 0x14], edx
mov dword [0xd2a5d8], edx
jne 0xce32f1
xor eax, eax
inc eax
mov byte [ebp - 0x6c], 0x30
mov dword [ebp - 8], eax
jmp 0xce333f
mov esi, dword [ebp - 8]
mov edi, dword [ebp + 0x10]
xor ebx, ebx
xor edx, edx
mov eax, esi
div edi
xor dword [0xd2a5f0], 0x6871f9b4
or dword [0xd2a5f0], 0x3fcd67b0
xor ecx, 0xaaab3110
inc ebx
or ecx, 0x82d5bc4
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov al, byte [edx + eax]
mov byte [ebp + ebx - 0x6d], al
test esi, esi
jne 0xce32f9
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0xc]
mov dword [ebp - 8], ebx
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x18]
cmp eax, edx
cmovg edx, eax
sub edi, edx
inc ecx
mov dword [ebp + 0x18], edx
mov edx, 0x68e63030
test esi, esi
cmove ecx, edx
test byte [ebp + 0x1c], 0x11
mov edx, dword [ebp + 8]
mov dword [0xd2a600], ecx
jne 0xce33b3
test edi, edi
jle 0xce33ad
xor ecx, ecx
inc ecx
dec edi
test ebx, ebx
je 0xce33a2
test esi, esi
cmove esi, ecx
mov dword [0xd2a5e0], esi
mov byte [edx], 0x20
mov esi, dword [0xd2a5e0]
inc edx
dec ebx
test esi, esi
cmove esi, ecx
mov dword [0xd2a5e0], esi
test edi, edi
jg 0xce336d
mov ecx, dword [0xd2a610]
mov dword [ebp - 0x10], ecx
jmp 0xce33b0
mov ecx, dword [0xd2a610]
mov dword [ebp - 0x10], ecx
jmp 0xce33b6
mov ecx, dword [ebp - 0x10]
dec edi
jmp 0xce33b6
mov ecx, dword [ebp - 0x10]
cmp byte [ebp - 1], 0
je 0xce33e8
test ebx, ebx
je 0xce3504
mov cl, byte [ebp - 1]
mov byte [edx], cl
mov esi, dword [0xd2a5e0]
inc edx
push 1
dec ebx
pop ecx
test esi, esi
cmove esi, ecx
mov ecx, dword [0xd2a610]
mov dword [0xd2a5e0], esi
mov dword [ebp - 0x10], ecx
test ebx, ebx
je 0xce3504
mov eax, dword [0xd2a5e8]
or dword [0xd2a5ec], eax
cmp dword [ebp - 0x24], 0
je 0xce3501
mov eax, dword [0xd2a5f0]
cmp eax, 0x1ee15eac
mov dword [ebp - 0x24], 0x50b7998
cmove eax, dword [ebp - 0x24]
mov dword [0xd2a5f0], eax
test ecx, ecx
jne 0xce342a
inc esi
mov dword [0xd2a5e0], esi
mov eax, dword [ebp + 0x10]
cmp eax, 8
jne 0xce3480
mov esi, dword [ebp - 0x14]
mov eax, esi
not eax
test al, 0xfa
push 0
pop ecx
setne cl
lea eax, [esi + esi]
xor esi, esi
inc esi
push 0
or ecx, eax
mov eax, dword [ebp - 0x10]
shl eax, 0xc
or eax, esi
mov dword [0xd2a610], eax
mov eax, ecx
not eax
mov byte [edx], 0x30
inc edx
test al, 0xfa
mov esi, 0x80000000
pop eax
cmove eax, esi
mov esi, dword [0xd2a5e0]
shr ecx, 1
or eax, ecx
mov dword [0xd2a5d8], eax
dec ebx
jmp 0xce3501
cmp eax, 0x10
jne 0xce3501
mov byte [edx], 0x30
mov esi, dword [0xd2a5e0]
inc edx
dec ebx
cmp dword [0xd2a600], 0
jne 0xce34a0
inc esi
mov dword [0xd2a5e0], esi
mov ecx, dword [ebp - 0x14]
mov eax, ecx
not eax
test al, 0xfa
push 0
pop eax
cmove eax, dword [ebp - 0x28]
shr ecx, 1
or eax, ecx
mov dword [0xd2a5d8], eax
test ebx, ebx
je 0xce3501
cmp esi, 0x1788a1f4
mov eax, 0x2c3ff7e8
cmove esi, eax
mov eax, dword [ebp - 0x1c]
mov dword [0xd2a5e0], esi
mov al, byte [eax + 0x21]
mov byte [edx], al
mov esi, dword [0xd2a5e0]
xor esi, 0x33993780
or esi, 0x4d0c0490
inc edx
dec ebx
mov eax, 0x1d4c2afc
cmp esi, 0xc64d9d50
cmove esi, eax
mov dword [0xd2a5e0], esi
mov eax, dword [ebp - 8]
test byte [ebp + 0x1c], 0x10
jne 0xce3525
test edi, edi
jle 0xce3524
mov cl, byte [ebp - 2]
dec edi
test ebx, ebx
je 0xce3562
mov byte [edx], cl
inc edx
dec ebx
test edi, edi
jg 0xce3511
mov esi, dword [0xd2a5e0]
dec edi
mov ecx, dword [ebp + 0x18]
cmp eax, ecx
jge 0xce35b2
dec ecx
test ebx, ebx
je 0xce35b2
cmp esi, 0x640410a0
mov dword [ebp + 0x1c], 0x360d69c0
cmove esi, dword [ebp + 0x1c]
mov dword [0xd2a5e0], esi
xor esi, esi
mov byte [edx], 0x30
inc edx
inc esi
dec ebx
or dword [0xd2a5f0], esi
mov esi, dword [0xd2a5e0]
jmp 0xce3528
mov esi, dword [0xd2a5e0]
jmp 0xce3525
dec eax
mov dword [ebp - 8], eax
test ebx, ebx
je 0xce35ce
cmp dword [0xd2a5f0], 0
jne 0xce3582
inc esi
mov dword [0xd2a5e0], esi
mov al, byte [ebp + eax - 0x6c]
mov byte [edx], al
mov esi, dword [0xd2a5e0]
inc edx
inc esi
mov eax, 0x9f63c868
cmove esi, eax
dec ebx
cmp dword [0xd2a600], 0
mov dword [0xd2a5e0], esi
jne 0xce35af
inc esi
mov dword [0xd2a5e0], esi
mov eax, dword [ebp - 8]
test eax, eax
jg 0xce356a
jmp 0xce35ce
dec edi
test ebx, ebx
je 0xce35d2
mov byte [edx], 0x20
mov ecx, dword [0xd2a5e8]
inc edx
dec ebx
or dword [0xd2a5ec], ecx
test edi, edi
jg 0xce35b8
mov eax, dword [ebp + 0x20]
mov dword [eax], ebx
mov eax, edx
jmp 0xce35dd
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret