Function at 0x6ace80
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rbx, qword [rsp + 0xc8]
mov rax, rdx
mov r15, rdx
lea rdx, [rbx + 0x3f]
sub rdx, rcx
mov qword [rsp + 0x40], rdx
mov r12, qword [rsp + 0xc0]
mov rsi, rcx
mov edi, r9d
shl rax, 5
cmp rdx, 0x7e
jbe 0x6ad0dc
mov rcx, r15
vmovdqu64 ymm2, ymmword [0x00749900]
shl rcx, 7
xor edx, edx
nop dword [rax]
vmovdqu32 ymm1, ymmword [rsi + rdx]
vmovdqu32 ymm0, ymmword [rsi + rdx + 0x20]
vmovdqu64 ymm3, ymm1
vpermt2d ymm3, ymm2, ymm0
vpermt2d ymm0, ymm2, ymm1
vmovdqu32 ymmword [rbx + rdx], ymm3
vmovdqu32 ymmword [rbx + rdx + 0x20], ymm0
add rdx, 0x40
cmp rdx, rcx
jne 0x6acee0
test edi, edi
je 0x6ad005
mov rcx, r15
shl rcx, 7
lea rdx, [rbx + rcx - 0x40]
lea r13, [rax*4]
mov qword [rsp + 0x28], rdx
lea rax, [rbx + 0x20]
lea edx, [r8 - 1]
xor r14d, r14d
mov qword [rsp + 0x48], rcx
mov dword [rsp + 0x34], edx
mov qword [rsp + 0x38], rax
mov qword [rsp + 0xa0], rsi
mov rsi, r13
mov r13, r12
mov r12, r15
mov r15d, r14d
mov r14, qword [rsp + 0xd0]
lea rbp, [rbx + rcx]
nop dword [rax + rax]
mov rax, qword [rsp + 0x28]
mov edx, dword [rsp + 0x34]
and edx, dword [rax]
imul rdx, r12
shl rdx, 7
lea rax, [r13 + rdx]
lea rdx, [r13 + rdx + 0x20]
cmp rbx, rdx
setae cl
cmp rax, qword [rsp + 0x38]
setae dl
or cl, dl
je 0x6ad098
xor edx, edx
nop dword [rax]
vmovdqu32 ymm4, ymmword [rbx + rdx]
vpxor ymm0, ymm4, ymmword [rax + rdx]
vmovdqu32 ymmword [rbx + rdx], ymm0
add rdx, 0x20
cmp rdx, rsi
jne 0x6acfb0
cmp edi, 2
jne 0x6ad070
mov r8, r12
mov rdx, r14
mov rcx, rbx
vzeroupper
inc r15d
call fcn.006acbd0
cmp edi, r15d
jne 0x6acf78
cmp qword [rsp + 0x40], 0x7e
mov rsi, qword [rsp + 0xa0]
mov r15, r12
jbe 0x6ad187
mov r10, r15
vmovdqu64 ymm2, ymmword [0x00749920]
shl r10, 7
xor eax, eax
nop dword [rax + rax]
vmovdqu32 ymm1, ymmword [rbx + rax]
vmovdqu32 ymm0, ymmword [rbx + rax + 0x20]
vmovdqu64 ymm3, ymm1
vpermt2d ymm3, ymm2, ymm0
vpermt2d ymm0, ymm2, ymm1
vmovdqu32 ymmword [rsi + rax], ymm3
vmovdqu32 ymmword [rsi + rax + 0x20], ymm0
add rax, 0x40
cmp rax, r10
jne 0x6ad020
vzeroupper
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor edx, edx
nop word [rax + rax]
vmovdqu32 ymm5, ymmword [rbx + rdx]
vmovdqu32 ymmword [rax + rdx], ymm5
add rdx, 0x20
cmp rdx, rsi
jne 0x6ad078
jmp 0x6acfd5
mov rcx, rax
mov rdx, rbx
nop
mov r8d, dword [rcx]
add rdx, 4
add rcx, 4
xor dword [rdx - 4], r8d
cmp rdx, rbp
jne 0x6ad0a0
cmp edi, 2
je 0x6acfd5
mov r8, qword [rsp + 0x48]
xor edx, edx
nop dword [rax]
mov ecx, dword [rbx + rdx]
mov dword [rax + rdx], ecx
add rdx, 4
cmp r8, rdx
jne 0x6ad0c8
jmp 0x6acfd5
mov rbp, r15
shl rbp, 7
mov rdx, rcx
add rbp, rsi
mov rcx, rbx
nop dword [rax]
mov r9d, dword [rdx]
add rdx, 0x40
mov dword [rcx], r9d
add rcx, 0x40
mov r9d, dword [rdx - 0x2c]
mov dword [rcx - 0x3c], r9d
mov r9d, dword [rdx - 0x18]
mov dword [rcx - 0x38], r9d
mov r9d, dword [rdx - 4]
mov dword [rcx - 0x34], r9d
mov r9d, dword [rdx - 0x30]
mov dword [rcx - 0x30], r9d
mov r9d, dword [rdx - 0x1c]
mov dword [rcx - 0x2c], r9d
mov r9d, dword [rdx - 8]
mov dword [rcx - 0x28], r9d
mov r9d, dword [rdx - 0x34]
mov dword [rcx - 0x24], r9d
mov r9d, dword [rdx - 0x20]
mov dword [rcx - 0x20], r9d
mov r9d, dword [rdx - 0xc]
mov dword [rcx - 0x1c], r9d
mov r9d, dword [rdx - 0x38]
mov dword [rcx - 0x18], r9d
mov r9d, dword [rdx - 0x24]
mov dword [rcx - 0x14], r9d
mov r9d, dword [rdx - 0x10]
mov dword [rcx - 0x10], r9d
mov r9d, dword [rdx - 0x3c]
mov dword [rcx - 0xc], r9d
mov r9d, dword [rdx - 0x28]
mov dword [rcx - 8], r9d
mov r9d, dword [rdx - 0x14]
mov dword [rcx - 4], r9d
cmp rbp, rdx
jne 0x6ad0f0
test edi, edi
jne 0x6acf21
mov rdx, r15
shl rdx, 7
add rdx, rbx
nop dword [rax]
mov eax, dword [rbx]
add rbx, 0x40
mov dword [rsi], eax
add rsi, 0x40
mov eax, dword [rbx - 0x3c]
mov dword [rsi - 0x2c], eax
mov eax, dword [rbx - 0x38]
mov dword [rsi - 0x18], eax
mov eax, dword [rbx - 0x34]
mov dword [rsi - 4], eax
mov eax, dword [rbx - 0x30]
mov dword [rsi - 0x30], eax
mov eax, dword [rbx - 0x2c]
mov dword [rsi - 0x1c], eax
mov eax, dword [rbx - 0x28]
mov dword [rsi - 8], eax
mov eax, dword [rbx - 0x24]
mov dword [rsi - 0x34], eax
mov eax, dword [rbx - 0x20]
mov dword [rsi - 0x20], eax
mov eax, dword [rbx - 0x1c]
mov dword [rsi - 0xc], eax
mov eax, dword [rbx - 0x18]
mov dword [rsi - 0x38], eax
mov eax, dword [rbx - 0x14]
mov dword [rsi - 0x24], eax
mov eax, dword [rbx - 0x10]
mov dword [rsi - 0x10], eax
mov eax, dword [rbx - 0xc]
mov dword [rsi - 0x3c], eax
mov eax, dword [rbx - 8]
mov dword [rsi - 0x28], eax
mov eax, dword [rbx - 4]
mov dword [rsi - 0x14], eax
cmp rbx, rdx
jne 0x6ad198
jmp 0x6ad05c