Function at 0x6aa950
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 0x6aabac
mov rcx, r15
vmovdqu64 ymm2, ymmword [0x00747880]
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 0x6aa9b0
test edi, edi
je 0x6aaad5
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 0x6aab68
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 0x6aaa80
cmp edi, 2
jne 0x6aab40
mov r8, r12
mov rdx, r14
mov rcx, rbx
vzeroupper
inc r15d
call fcn.006aa6a0
cmp edi, r15d
jne 0x6aaa48
cmp qword [rsp + 0x40], 0x7e
mov rsi, qword [rsp + 0xa0]
mov r15, r12
jbe 0x6aac57
mov r10, r15
vmovdqu64 ymm2, ymmword [0x007478a0]
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 0x6aaaf0
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 0x6aab48
jmp 0x6aaaa5
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 0x6aab70
cmp edi, 2
je 0x6aaaa5
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 0x6aab98
jmp 0x6aaaa5
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 0x6aabc0
test edi, edi
jne 0x6aa9f1
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 0x6aac68
jmp 0x6aab2c