Function at 0x6aa6d0
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 0x6aa92c
mov rcx, r15
vmovdqu64 ymm2, ymmword [0x00749800]
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 0x6aa730
test edi, edi
je 0x6aa855
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 0x6aa8e8
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 0x6aa800
cmp edi, 2
jne 0x6aa8c0
mov r8, r12
mov rdx, r14
mov rcx, rbx
vzeroupper
inc r15d
call fcn.006aa420
cmp edi, r15d
jne 0x6aa7c8
cmp qword [rsp + 0x40], 0x7e
mov rsi, qword [rsp + 0xa0]
mov r15, r12
jbe 0x6aa9d7
mov r10, r15
vmovdqu64 ymm2, ymmword [0x00749820]
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 0x6aa870
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 0x6aa8c8
jmp 0x6aa825
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 0x6aa8f0
cmp edi, 2
je 0x6aa825
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 0x6aa918
jmp 0x6aa825
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 0x6aa940
test edi, edi
jne 0x6aa771
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 0x6aa9e8
jmp 0x6aa8ac