Function at 0xce35e2
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb4
push ebx
push esi
push edi
xor eax, eax
push 0x82
mov word [ebp - 0xb4], ax
xor edi, edi
lea eax, [ebp - 0xb2]
push edi
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 edi
pop eax
setne al
add ecx, ecx
xor esi, 0x46c2e830
or esi, 0xaa0ad5c
push edi
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 0xce3657
inc esi
cmp dword [0xd2a5f0], edi
jne 0xce3660
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 - 0x14], str.string_too_long
mov dword [0xd2a610], edx
test edx, edx
jne 0xce3690
inc esi
mov ebx, dword [ebp + 0x20]
mov eax, ecx
not eax
test al, 0xfa
push 0
pop eax
setne al
add ecx, ecx
or ecx, eax
cmp esi, 0x692b6c0
mov eax, 0x65180b40
cmove esi, eax
mov eax, dword [ebp + 0x1c]
xor edx, 0x2a91950
mov dword [0xd2a5e0], esi
mov ebx, dword [ebx]
mov dword [ebp - 0x24], ebx
or edx, 0xb945ca90
test al, 0x40
mov ebx, 0xd1e7a0
cmove ebx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ebx
xor ebx, ebx
inc ebx
or edx, ebx
test esi, esi
cmove esi, ebx
mov ebx, dword [ebp - 0x24]
mov dword [0xd2a5d8], ecx
mov dword [ebp - 8], edx
mov dword [0xd2a610], edx
mov dword [ebp - 0x20], esi
mov dword [0xd2a5e0], esi
test al, 0x10
je 0xce3708
and eax, 0xfffffffe
mov dword [ebp + 0x1c], eax
mov eax, dword [ebp + 0x10]
add eax, 0xfffffffe
cmp eax, 0x22
ja 0xce3b50
mov al, byte [ebp + 0x1c]
and al, 1
or al, 2
shl al, 4
cbw
movzx eax, ax
mov dword [ebp - 0x2c], eax
not ecx
test cl, 0xfa
push 0
pop ecx
mov eax, 0x80000000
cmove ecx, eax
mov eax, dword [0xd2a5d8]
shr eax, 1
or ecx, eax
mov eax, ecx
not eax
test al, 0xfa
push 0
mov dword [ebp - 0x10], edi
pop eax
mov edi, 0x80000000
cmove eax, edi
shr ecx, 1
or eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x1c]
push 0x20
pop edi
test al, 2
je 0xce37c4
test ecx, ecx
jns 0xce378b
mov eax, dword [0xd2a5e8]
or dword [0xd2a5ec], eax
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x1c]
neg ecx
mov dword [ebp - 0x10], 0x2d
dec edi
jmp 0xce37c7
test al, 4
je 0xce37b7
mov edi, dword [ebp + 0x14]
dec edi
or edx, 1
mov dword [ebp - 0x10], 0x2b
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edx
mov dword [0xd2a610], edx
jne 0xce37ca
inc esi
mov dword [ebp - 0x20], esi
mov dword [0xd2a5e0], esi
jmp 0xce37ca
test al, 8
je 0xce37c4
mov dword [ebp - 0x10], edi
mov edi, dword [ebp + 0x14]
dec edi
jmp 0xce37c7
mov edi, dword [ebp + 0x14]
mov dword [ebp - 0xc], edi
push 0x20
pop edx
and eax, edx
mov dword [ebp - 0x18], eax
je 0xce37ea
mov eax, dword [ebp + 0x10]
cmp eax, 0x10
jne 0xce37e1
sub edi, 2
jmp 0xce37e7
cmp eax, 8
jne 0xce37ea
dec edi
mov dword [ebp - 0xc], edi
mov eax, dword [ebp - 4]
not eax
test al, 0xfa
mov eax, dword [ebp - 4]
push 0
pop edx
setne dl
add eax, eax
push 0x30
or edx, eax
mov dword [ebp - 0x1c], edx
mov dword [0xd2a5d8], edx
pop eax
test ecx, ecx
jne 0xce3823
mov ecx, dword [0xd2a600]
mov word [ebp - 0xb4], ax
xor eax, eax
inc eax
mov dword [ebp - 4], eax
jmp 0xce387f
mov esi, dword [0xd2a600]
mov edi, dword [ebp + 0x10]
xor ebx, ebx
xor edx, edx
mov eax, ecx
div edi
xor dword [0xd2a5f0], 0x6871f9b4
or dword [0xd2a5f0], 0x3fcd67b0
xor esi, 0xaaab3110
inc ebx
or esi, 0x82d5bc4
mov ecx, eax
mov eax, dword [ebp - 0x14]
mov ax, word [eax + edx*2]
mov word [ebp + ebx*2 - 0xb6], ax
test ecx, ecx
jne 0xce382e
mov edi, dword [ebp - 0xc]
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 4]
mov dword [ebp - 0x30], esi
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x30]
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 0xce38f8
test edi, edi
jle 0xce38f2
xor ecx, ecx
inc ecx
dec edi
test ebx, ebx
je 0xce38e7
test esi, esi
cmove esi, ecx
mov dword [0xd2a5e0], esi
push 0x20
pop esi
mov word [edx], si
mov esi, dword [0xd2a5e0]
add edx, 2
dec ebx
test esi, esi
cmove esi, ecx
mov dword [0xd2a5e0], esi
test edi, edi
jg 0xce38ad
mov ecx, dword [0xd2a610]
mov dword [ebp - 8], ecx
jmp 0xce38f5
mov ecx, dword [0xd2a610]
mov dword [ebp - 8], ecx
jmp 0xce38fb
mov ecx, dword [ebp - 8]
dec edi
jmp 0xce38fb
mov ecx, dword [ebp - 8]
cmp word [ebp - 0x10], 0
je 0xce3931
test ebx, ebx
je 0xce3a5f
mov ecx, dword [ebp - 0x10]
mov word [edx], cx
mov esi, dword [0xd2a5e0]
add edx, 2
push 1
dec ebx
pop ecx
test esi, esi
cmove esi, ecx
mov ecx, dword [0xd2a610]
mov dword [0xd2a5e0], esi
mov dword [ebp - 8], ecx
test ebx, ebx
je 0xce3a5f
mov eax, dword [0xd2a5e8]
or dword [0xd2a5ec], eax
cmp dword [ebp - 0x18], 0
je 0xce3a5c
mov eax, dword [0xd2a5f0]
cmp eax, 0x1ee15eac
mov dword [ebp - 0x18], 0x50b7998
cmove eax, dword [ebp - 0x18]
mov dword [0xd2a5f0], eax
test ecx, ecx
jne 0xce3973
inc esi
mov dword [0xd2a5e0], esi
mov eax, dword [ebp + 0x10]
cmp eax, 8
jne 0xce39ce
mov esi, dword [ebp - 0x1c]
mov eax, esi
not eax
test al, 0xfa
push 0
pop ecx
setne cl
lea eax, [esi + esi]
xor esi, esi
inc esi
push 0x30
or ecx, eax
mov eax, dword [ebp - 8]
shl eax, 0xc
or eax, esi
mov dword [0xd2a610], eax
pop eax
mov word [edx], ax
mov eax, ecx
not eax
add edx, 2
test al, 0xfa
push 0
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 0xce3a5c
cmp eax, 0x10
jne 0xce3a5c
push 0x30
pop eax
mov word [edx], ax
mov esi, dword [0xd2a5e0]
add edx, 2
dec ebx
cmp dword [0xd2a600], 0
jne 0xce39f7
inc esi
mov dword [0xd2a5e0], esi
mov ecx, dword [ebp - 0x1c]
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 0xce3a5c
cmp esi, 0x1788a1f4
mov eax, 0x2c3ff7e8
cmove esi, eax
mov eax, dword [ebp - 0x14]
mov dword [0xd2a5e0], esi
mov ax, word [eax + 0x42]
mov word [edx], ax
mov esi, dword [0xd2a5e0]
xor esi, 0x33993780
or esi, 0x4d0c0490
add edx, 2
dec ebx
mov eax, 0x1d4c2afc
cmp esi, 0xc64d9d50
cmove esi, eax
mov dword [0xd2a5e0], esi
mov eax, dword [ebp - 4]
test byte [ebp + 0x1c], 0x10
jne 0xce3a83
test edi, edi
jle 0xce3a82
mov ecx, dword [ebp - 0x2c]
dec edi
test ebx, ebx
je 0xce3ac9
mov word [edx], cx
add edx, 2
dec ebx
test edi, edi
jg 0xce3a6c
mov esi, dword [0xd2a5e0]
dec edi
mov ecx, dword [ebp + 0x18]
cmp eax, ecx
jge 0xce3b20
dec ecx
test ebx, ebx
je 0xce3b20
cmp esi, 0x640410a0
mov dword [ebp + 0x1c], 0x360d69c0
cmove esi, dword [ebp + 0x1c]
mov dword [0xd2a5e0], esi
push 0x30
pop esi
mov word [edx], si
xor esi, esi
add edx, 2
inc esi
dec ebx
or dword [0xd2a5f0], esi
mov esi, dword [0xd2a5e0]
jmp 0xce3a86
mov esi, dword [0xd2a5e0]
jmp 0xce3a83
dec eax
mov dword [ebp - 4], eax
test ebx, ebx
je 0xce3b24
cmp dword [0xd2a5f0], 0
jne 0xce3ae9
inc esi
mov dword [0xd2a5e0], esi
mov ax, word [ebp + eax*2 - 0xb4]
mov word [edx], ax
mov esi, dword [0xd2a5e0]
add edx, 2
inc esi
mov eax, 0x9f63c868
cmove esi, eax
dec ebx
cmp dword [0xd2a600], 0
mov dword [0xd2a5e0], esi
jne 0xce3b1d
inc esi
mov dword [0xd2a5e0], esi
mov eax, dword [ebp - 4]
test eax, eax
jg 0xce3ad1
test edi, edi
jle 0xce3b47
push 0x20
pop eax
dec edi
test ebx, ebx
je 0xce3b47
mov word [edx], ax
mov ecx, dword [0xd2a5e8]
or dword [0xd2a5ec], ecx
add edx, 2
dec ebx
test edi, edi
jg 0xce3b2b
mov eax, dword [ebp + 0x20]
mov dword [eax], ebx
mov eax, edx
jmp 0xce3b52
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret