Function at 0x4aca80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x18
mov r10d, dword [rdx + 8]
mov eax, dword [r8 + 8]
sub rcx, 1
shr rcx, 0x3f
xor eax, r10d
sub rcx, 1
cdqe
and rax, rcx
xor r10d, eax
mov dword [rdx + 8], r10d
xor dword [r8 + 8], eax
cmp r9d, 0xa
mov rdx, qword [rdx]
mov rax, qword [r8]
ja case.0x4acacc.0
lea r10, [0x006a764c]
mov r8d, r9d
movsxd r8, dword [r10 + r8*4]
add r8, r10
jmp r8
cmp r9d, 0xa
jle case.0x4acacc.10
lea r11, [rax + 0x60]
lea r10, [rdx + 0x50]
lea r8, [rax + 0x50]
lea edi, [r9 - 0xa]
cmp r10, r11
lea r11, [rdx + 0x60]
setae bl
cmp r8, r11
setae r11b
or bl, r11b
je 0x4acd05
cmp edi, 5
jbe 0x4acd05
shr r8, 3
mov ebx, 0xa
and r8d, 1
je 0x4acb3a
mov r11, qword [rdx + 0x50]
mov r10, qword [rax + 0x50]
mov ebx, 0xb
xor r10, r11
and r10, rcx
xor r11, r10
mov qword [rdx + 0x50], r11
xor qword [rax + 0x50], r10
mov qword [rsp + 8], rcx
sub edi, r8d
mov r8d, r8d
movq xmm2, qword [rsp + 8]
add r8, 0xa
punpcklqdq xmm2, xmm2
shl r8, 3
mov ebp, edi
lea rsi, [rdx + r8]
xor r10d, r10d
shr ebp, 1
add r8, rax
xor r11d, r11d
nop dword [rax + rax]
movdqu xmm1, xmmword [rsi + r10]
add r11d, 1
movdqa xmm0, xmmword [r8 + r10]
pxor xmm0, xmm1
pand xmm0, xmm2
pxor xmm1, xmm0
movups xmmword [rsi + r10], xmm1
pxor xmm0, xmmword [r8 + r10]
movaps xmmword [r8 + r10], xmm0
add r10, 0x10
cmp r11d, ebp
jb 0x4acb70
mov r8d, edi
and r8d, 0xfffffffe
add ebx, r8d
cmp r8d, edi
je case.0x4acacc.10
movsxd r8, ebx
add ebx, 1
shl r8, 3
lea rsi, [rdx + r8]
add r8, rax
mov r10, qword [r8]
mov r11, qword [rsi]
xor r10, r11
and r10, rcx
xor r11, r10
mov qword [rsi], r11
xor qword [r8], r10
cmp r9d, ebx
jle case.0x4acacc.10
movsxd rbx, ebx
lea r8, [rbx*8]
lea r11, [rdx + r8]
add r8, rax
mov r9, qword [r8]
mov r10, qword [r11]
xor r9, r10
and r9, rcx
xor r10, r9
mov qword [r11], r10
xor qword [r8], r9
mov r9, qword [rdx + 0x48]
mov r8, qword [rax + 0x48]
xor r8, r9
and r8, rcx
xor r9, r8
mov qword [rdx + 0x48], r9
xor qword [rax + 0x48], r8
mov r9, qword [rdx + 0x40]
mov r8, qword [rax + 0x40]
xor r8, r9
and r8, rcx
xor r9, r8
mov qword [rdx + 0x40], r9
xor qword [rax + 0x40], r8
mov r9, qword [rdx + 0x38]
mov r8, qword [rax + 0x38]
xor r8, r9
and r8, rcx
xor r9, r8
mov qword [rdx + 0x38], r9
xor qword [rax + 0x38], r8
mov r9, qword [rdx + 0x30]
mov r8, qword [rax + 0x30]
xor r8, r9
and r8, rcx
xor r9, r8
mov qword [rdx + 0x30], r9
xor qword [rax + 0x30], r8
mov r9, qword [rdx + 0x28]
mov r8, qword [rax + 0x28]
xor r8, r9
and r8, rcx
xor r9, r8
mov qword [rdx + 0x28], r9
xor qword [rax + 0x28], r8
mov r9, qword [rdx + 0x20]
mov r8, qword [rax + 0x20]
xor r8, r9
and r8, rcx
xor r9, r8
mov qword [rdx + 0x20], r9
xor qword [rax + 0x20], r8
mov r9, qword [rdx + 0x18]
mov r8, qword [rax + 0x18]
xor r8, r9
and r8, rcx
xor r9, r8
mov qword [rdx + 0x18], r9
xor qword [rax + 0x18], r8
mov r9, qword [rdx + 0x10]
mov r8, qword [rax + 0x10]
xor r8, r9
and r8, rcx
xor r9, r8
mov qword [rdx + 0x10], r9
xor qword [rax + 0x10], r8
mov r9, qword [rdx + 8]
mov r8, qword [rax + 8]
xor r8, r9
and r8, rcx
xor r9, r8
mov qword [rdx + 8], r9
xor qword [rax + 8], r8
mov r9, qword [rdx]
mov r8, qword [rax]
xor r8, r9
and rcx, r8
xor r9, rcx
mov qword [rdx], r9
xor qword [rax], rcx
add rsp, 0x18
pop rbx
pop rsi
pop rdi
pop rbp
ret
sub r9d, 0xb
lea rbx, [rdx + r9*8 + 0x58]
nop
mov r11, qword [r10]
mov r9, qword [r8]
add r10, 8
xor r9, r11
and r9, rcx
xor r11, r9
mov qword [r10 - 8], r11
xor qword [r8], r9
add r8, 8
cmp r10, rbx
jne 0x4acd10
jmp case.0x4acacc.10