Function at 0x10064db0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x38
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jle 0x10065005
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
add ecx, edi
mov edx, ecx
lea ecx, [eax + 4]
mov dword [ebp - 0x40], ecx
lea ecx, [eax + 0x14]
mov dword [ebp - 0x3c], ecx
lea ebx, [eax + 0xc]
lea ecx, [eax + 0x12]
mov dword [ebp - 0x38], ecx
lea ecx, [eax + 0x44]
mov dword [ebp - 0x34], ecx
mov ecx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x30], ebx
jmp 0x10064e17
mov esi, edi
mov eax, ebx
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
mov edi, esi
cmp esi, ecx
mov esi, dword [ebp - 0x10]
jae 0x10065005
mov edx, dword [eax + 0x24]
test edx, edx
jne 0x10064e5e
push 0
push 0
push 1
push dword [ebp - 0x40]
push dword [ebp - 0x3c]
push dword [eax]
call fcn.10063fb0
add esp, 0x18
mov eax, dword [ebp - 0x38]
nop word [eax + eax]
movzx ecx, byte [eax + 1]
add cl, 1
mov byte [eax + 1], cl
cmp eax, ebx
jb 0x10064e55
add eax, 0xffffffff
test cl, cl
je 0x10064e40
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x24]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], esi
mov esi, edi
sub esi, edx
add esi, 0x10
cmp esi, ecx
cmova esi, ecx
mov ebx, eax
mov eax, edx
sub eax, edi
lea ecx, [eax + esi]
and ecx, 0xf
mov dword [ebx + 0x24], ecx
cmp edi, esi
jae 0x10064e00
lea ecx, [ebx + edx]
add ecx, 0x14
mov ebx, esi
sub ebx, edi
cmp ebx, 0x20
mov dword [ebp - 0x18], esi
jb 0x10064fc0
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x2c]
add ebx, ecx
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp + 8]
add ebx, esi
add ebx, 0x14
add ebx, eax
mov eax, dword [ebp - 0x10]
cmp eax, esi
mov esi, eax
setb byte [ebp - 0x14]
mov eax, dword [ebp - 0x28]
cmp edi, eax
setb byte [ebp - 0x24]
cmp esi, ebx
mov ebx, dword [ebp + 8]
lea ebx, [ebx + edx + 0x14]
mov dword [ebp - 0x44], ebx
setb bl
cmp dword [ebp - 0x44], eax
setb al
mov ah, byte [ebp - 0x24]
test byte [ebp - 0x14], ah
jne 0x10064fb2
and bl, al
jne 0x10064fb2
mov ebx, dword [ebp - 0x2c]
and ebx, 0xffffffe0
lea eax, [ebx - 0x20]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
shr eax, 5
add eax, 1
cmp dword [ebp - 0x14], 0
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], eax
je 0x10064ff7
add edx, dword [ebp - 0x34]
and eax, 0xfffffffe
neg eax
xor ebx, ebx
movups xmm0, xmmword [edi + ebx]
movups xmm1, xmmword [edi + ebx + 0x10]
movups xmm2, xmmword [edx + ebx - 0x30]
xorps xmm2, xmm0
movups xmm0, xmmword [edx + ebx - 0x20]
xorps xmm0, xmm1
movups xmmword [esi + ebx], xmm2
movups xmmword [esi + ebx + 0x10], xmm0
movups xmm0, xmmword [edi + ebx + 0x20]
movups xmm1, xmmword [edi + ebx + 0x30]
movups xmm2, xmmword [edx + ebx - 0x10]
xorps xmm2, xmm0
movups xmm0, xmmword [edx + ebx]
xorps xmm0, xmm1
movups xmmword [esi + ebx + 0x20], xmm2
movups xmmword [esi + ebx + 0x30], xmm0
add ebx, 0x40
add eax, 2
jne 0x10064f20
test byte [ebp - 0x24], 1
je 0x10064f94
movups xmm0, xmmword [edi + ebx]
movups xmm1, xmmword [edi + ebx + 0x10]
movups xmm2, xmmword [ecx + ebx]
xorps xmm2, xmm0
movups xmm0, xmmword [ecx + ebx + 0x10]
xorps xmm0, xmm1
movups xmmword [esi + ebx], xmm2
movups xmmword [esi + ebx + 0x10], xmm0
mov eax, dword [ebp - 0x28]
add esi, eax
mov dword [ebp - 0x10], esi
cmp dword [ebp - 0x2c], eax
mov esi, dword [ebp - 0x18]
jne 0x10064fba
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0x30]
jmp 0x10064e0a
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
jmp 0x10064fc0
add ecx, eax
add edi, eax
nop
mov edx, esi
sub edx, edi
xor eax, eax
mov esi, dword [ebp - 0x10]
nop dword [eax]
movzx ebx, byte [ecx + eax]
xor bl, byte [edi + eax]
mov byte [esi + eax], bl
add eax, 1
cmp edx, eax
jne 0x10064fd0
add esi, eax
mov dword [ebp - 0x10], esi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x18]
jmp 0x10064e0a
xor ebx, ebx
test byte [ebp - 0x24], 1
jne 0x10064f73
jmp 0x10064f94
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret