Function at 0x6a2920
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbx
sub rsp, 0x190
xor r9d, r9d
mov r15, rcx
lea rcx, [rsp + 0xbf]
mov rbx, r8
and rcx, 0xffffffffffffffc0
mov r13, rdx
mov r12, rcx
lea r14, [r15 + 0x100]
xor r8d, r8d
mov edx, 0x20
cmp rbx, 0x40
ja 0x6a2ba8
mov rcx, r15
call fcn.00466220
movabs rax, 0x3636363636363636
movabs rdx, 0x3636363636363636
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
lea r12, [rsp + 0x40]
test rbx, rbx
je 0x6a2c50
cmp rbx, 0x1f
jbe 0x6a2c40
vmovdqu8 ymm2, ymmword [rsp + 0x40]
mov rax, rbx
vpxor ymm0, ymm2, ymmword [r13]
shr rax, 5
vmovdqu8 ymmword [rsp + 0x40], ymm0
cmp rax, 2
jne 0x6a2afc
vmovdqu8 ymm3, ymmword [rsp + 0x60]
vpxor ymm0, ymm3, ymmword [r13 + 0x20]
vmovdqu8 ymmword [rsp + 0x60], ymm0
mov r8d, 0x40
mov rdx, r12
mov rcx, r15
vzeroupper
call fcn.004664e0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x20
mov rcx, r14
call fcn.00466220
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], rax
test rbx, rbx
mov eax, 1
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x78], rdx
cmovne rax, rbx
vmovdqu8 ymm1, ymmword [rsp + 0x40]
mov rdx, rax
vpxor ymm0, ymm1, ymmword [r13]
shr rdx, 5
vmovdqu8 ymmword [rsp + 0x40], ymm0
cmp rdx, 2
jne 0x6a2ad0
vmovdqu8 ymm0, ymmword [r13 + 0x20]
vpxor ymm0, ymm0, ymmword [rsp + 0x60]
vmovdqu8 ymmword [rsp + 0x60], ymm0
vzeroupper
mov r8d, 0x40
mov rdx, r12
mov rcx, r14
call fcn.004664e0
nop
add rsp, 0x190
pop rbx
pop r12
pop r13
pop r14
pop r15
ret
cmp rax, 0x20
je 0x6a2cb5
mov eax, 0x20
vzeroupper
nop word [rax + rax]
movzx edx, byte [r13 + rax]
xor byte [r12 + rax], dl
inc rax
cmp rax, rbx
jb 0x6a2ae8
jmp 0x6a2aa7
cmp rbx, 0x20
je 0x6a29fd
mov eax, 0x20
vzeroupper
nop
movzx edx, byte [r12 + rax]
xor dl, byte [r13 + rax]
mov byte [r12 + rax], dl
inc rax
cmp rbx, rax
ja 0x6a2b10
mov r8d, 0x40
mov rdx, r12
mov rcx, r15
call fcn.004664e0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x20
mov rcx, r14
call fcn.00466220
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
mov qword [r12], rax
mov qword [r12 + 0x10], rax
mov qword [r12 + 0x20], rax
mov qword [r12 + 0x30], rax
test rbx, rbx
mov eax, 1
mov qword [r12 + 8], rdx
mov qword [r12 + 0x18], rdx
mov qword [r12 + 0x28], rdx
mov qword [r12 + 0x38], rdx
cmovne rax, rbx
cmp rbx, 0x1f
ja 0x6a2a6c
xor eax, eax
jmp 0x6a2ae8
call fcn.00466220
mov r8, rbx
mov rdx, r13
mov rcx, r12
lea r13, [rsp + 0x20]
call fcn.004664e0
mov rcx, r12
mov rdx, r13
call fcn.00466560
mov edx, 0x20
xor r9d, r9d
xor r8d, r8d
mov rcx, r15
call fcn.00466220
movabs rax, 0x3636363636363636
movabs rdx, 0x3636363636363636
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
vmovdqu8 ymm4, ymmword [rsp + 0x40]
mov qword [rsp + 0x70], rax
vpxor ymm0, ymm4, ymmword [rsp + 0x20]
mov qword [rsp + 0x78], rdx
vmovdqu8 ymmword [rsp + 0x40], ymm0
mov ebx, 0x20
lea r12, [rsp + 0x40]
jmp 0x6a29fd
xor eax, eax
jmp 0x6a2b10
mov r8d, 0x40
mov rdx, r12
mov rcx, r15
call fcn.004664e0
mov edx, 0x20
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
call fcn.00466220
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
jmp 0x6a2aa7
vzeroupper
jmp 0x6a2aa7