Function at 0x47af90
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
vmovups xmmword [rsp + 0xa0], xmm6
vmovdqu ymm4, ymmword [rcx]
vpxor ymm0, ymm4, ymmword [rdx]
mov rdi, rdx
mov rbp, r8
vextracti128 xmmword [rsp + 0x70], ymm0, 1
vmovups xmmword [rsp + 0x60], xmm0
vmovdqu ymm0, ymmword [rcx + 0x20]
lea rcx, [rsp + 0x60]
vpxor ymm0, ymm0, ymmword [rdx + 0x20]
vextracti128 xmmword [rsp + 0x90], ymm0, 1
vmovups xmmword [rsp + 0x80], xmm0
vzeroupper
call fcn.0047abe0
vmovdqu ymm4, ymmword [rsp + 0x60]
lea r12, [0x00688e40]
lea r13, [rsp + 0x20]
lea rbx, [0x00689140]
vpxor ymm0, ymm4, ymmword [rbp]
vmovdqu ymm5, ymmword [rsp + 0x80]
lea rsi, [r12 + 0x300]
vextracti128 xmmword [rsp + 0x30], ymm0, 1
vmovups xmmword [rsp + 0x20], xmm0
vpxor ymm0, ymm5, ymmword [rbp + 0x20]
vextracti128 xmmword [rsp + 0x50], ymm0, 1
vmovups xmmword [rsp + 0x40], xmm0
nop
mov rcx, r13
vzeroupper
call fcn.0047abe0
vmovdqu ymm6, ymmword [rsp + 0x60]
vpxor ymm1, ymm6, ymmword [r12]
vmovdqu ymm4, ymmword [rsp + 0x80]
vpxor ymm0, ymm4, ymmword [r12 + 0x20]
vpextrb edx, xmm1, 6
vpextrb eax, xmm1, 0xe
vmovups xmm3, xmm1
mov rax, qword [rbx + rax*8 + 0x3000]
xor rax, qword [rbx + rdx*8 + 0x3800]
vextracti128 xmm1, ymm1, 1
vmovups xmm2, xmm0
vpextrb ecx, xmm1, 6
vpextrb r9d, xmm3, 7
mov rdx, rax
vpextrb eax, xmm1, 0xe
mov rax, qword [rbx + rax*8 + 0x2000]
xor rax, qword [rbx + rcx*8 + 0x2800]
vpextrb ecx, xmm0, 6
xor rax, rdx
vpextrb edx, xmm0, 0xe
vextracti128 xmm0, ymm0, 1
vpextrb r8d, xmm0, 6
mov rdx, qword [rbx + rdx*8 + 0x1000]
xor rdx, qword [rbx + rcx*8 + 0x1800]
vpextrb ecx, xmm0, 0xe
mov rcx, qword [rbx + rcx*8]
xor rcx, qword [rbx + r8*8 + 0x800]
vpextrb r8d, xmm2, 7
xor rdx, rcx
vpextrb ecx, xmm0, 0xf
xor rax, rdx
vpextrb edx, xmm0, 7
mov rcx, qword [rbx + rcx*8]
xor rcx, qword [rbx + rdx*8 + 0x800]
vpextrb edx, xmm2, 0xf
vmovq xmm5, rax
vpextrb eax, xmm3, 4
mov rdx, qword [rbx + rdx*8 + 0x1000]
xor rdx, qword [rbx + r8*8 + 0x1800]
xor rcx, rdx
vpextrb edx, xmm1, 0xf
mov r8, rcx
vpextrb ecx, xmm1, 7
mov rdx, qword [rbx + rdx*8 + 0x2000]
xor rdx, qword [rbx + rcx*8 + 0x2800]
vpextrb ecx, xmm3, 0xf
mov rcx, qword [rbx + rcx*8 + 0x3000]
xor rcx, qword [rbx + r9*8 + 0x3800]
xor rdx, rcx
vpextrb ecx, xmm1, 4
xor rdx, r8
vpextrb r8d, xmm0, 4
vpinsrq xmm4, xmm5, rdx, 1
vpextrb edx, xmm3, 0xc
mov rdx, qword [rbx + rdx*8 + 0x3000]
xor rdx, qword [rbx + rax*8 + 0x3800]
vpextrb eax, xmm1, 0xc
mov rax, qword [rbx + rax*8 + 0x2000]
xor rax, qword [rbx + rcx*8 + 0x2800]
mov rcx, rdx
vpextrb edx, xmm2, 4
xor rcx, rax
vpextrb eax, xmm2, 0xc
mov rax, qword [rbx + rax*8 + 0x1000]
xor rax, qword [rbx + rdx*8 + 0x1800]
vpextrb edx, xmm0, 0xc
mov rdx, qword [rbx + rdx*8]
xor rdx, qword [rbx + r8*8 + 0x800]
vpextrb r8d, xmm0, 5
xor rax, rdx
vpextrb edx, xmm3, 0xd
xor rcx, rax
vpextrb eax, xmm3, 5
mov rdx, qword [rbx + rdx*8 + 0x3000]
vmovq xmm5, rcx
xor rdx, qword [rbx + rax*8 + 0x3800]
vpextrb ecx, xmm1, 5
vpextrb eax, xmm1, 0xd
mov rax, qword [rbx + rax*8 + 0x2000]
xor rax, qword [rbx + rcx*8 + 0x2800]
mov rcx, rdx
vpextrb edx, xmm2, 5
xor rcx, rax
vpextrb eax, xmm2, 0xd
mov rax, qword [rbx + rax*8 + 0x1000]
xor rax, qword [rbx + rdx*8 + 0x1800]
vpextrb edx, xmm0, 0xd
mov rdx, qword [rbx + rdx*8]
xor rdx, qword [rbx + r8*8 + 0x800]
vpextrb r8d, xmm0, 2
xor rax, rdx
vpextrb edx, xmm3, 0xa
xor rax, rcx
mov rdx, qword [rbx + rdx*8 + 0x3000]
vpextrb ecx, xmm1, 2
vpinsrq xmm5, xmm5, rax, 1
vpextrb eax, xmm3, 2
xor rdx, qword [rbx + rax*8 + 0x3800]
vpextrb eax, xmm1, 0xa
mov rax, qword [rbx + rax*8 + 0x2000]
xor rax, qword [rbx + rcx*8 + 0x2800]
mov rcx, rdx
vpextrb edx, xmm2, 2
xor rcx, rax
vpextrb eax, xmm2, 0xa
mov rax, qword [rbx + rax*8 + 0x1000]
xor rax, qword [rbx + rdx*8 + 0x1800]
vpextrb edx, xmm0, 0xa
add r12, 0x40
mov rdx, qword [rbx + rdx*8]
xor rdx, qword [rbx + r8*8 + 0x800]
vpextrb r8d, xmm0, 3
xor rax, rdx
vpextrb edx, xmm3, 0xb
xor rcx, rax
vpextrb eax, xmm3, 3
mov rdx, qword [rbx + rdx*8 + 0x3000]
vmovq xmm6, rcx
xor rdx, qword [rbx + rax*8 + 0x3800]
vpextrb ecx, xmm1, 3
vpextrb eax, xmm1, 0xb
mov rax, qword [rbx + rax*8 + 0x2000]
xor rax, qword [rbx + rcx*8 + 0x2800]
mov rcx, rdx
vpextrb edx, xmm2, 3
xor rcx, rax
vpextrb eax, xmm2, 0xb
mov rax, qword [rbx + rax*8 + 0x1000]
xor rax, qword [rbx + rdx*8 + 0x1800]
vpextrb edx, xmm0, 0xb
mov rdx, qword [rbx + rdx*8]
xor rdx, qword [rbx + r8*8 + 0x800]
vpextrb r8d, xmm0, 0
xor rax, rdx
vpextrb edx, xmm3, 0
xor rax, rcx
vpextrb ecx, xmm1, 8
vpinsrq xmm6, xmm6, rax, 1
vpextrb eax, xmm3, 8
mov rcx, qword [rbx + rcx*8 + 0x2000]
mov rax, qword [rbx + rax*8 + 0x3000]
xor rax, qword [rbx + rdx*8 + 0x3800]
vpextrb edx, xmm1, 0
xor rcx, qword [rbx + rdx*8 + 0x2800]
xor rax, rcx
vpextrb ecx, xmm2, 0
mov rdx, rax
vpextrb eax, xmm2, 8
mov rax, qword [rbx + rax*8 + 0x1000]
xor rax, qword [rbx + rcx*8 + 0x1800]
vpextrb ecx, xmm0, 8
mov rcx, qword [rbx + rcx*8]
xor rcx, qword [rbx + r8*8 + 0x800]
xor rax, rcx
mov rcx, rdx
vpextrb edx, xmm3, 9
xor rcx, rax
vpextrb eax, xmm3, 1
mov r8, qword [rbx + rdx*8 + 0x3000]
vpextrb edx, xmm1, 9
xor r8, qword [rbx + rax*8 + 0x3800]
vpextrb eax, xmm1, 1
mov rdx, qword [rbx + rdx*8 + 0x2000]
vmovq xmm3, rcx
xor rdx, qword [rbx + rax*8 + 0x2800]
vpextrb eax, xmm2, 1
mov r9, r8
vpextrb r8d, xmm0, 9
xor r9, rdx
vpextrb edx, xmm2, 9
mov rdx, qword [rbx + rdx*8 + 0x1000]
xor rdx, qword [rbx + rax*8 + 0x1800]
vpextrb eax, xmm0, 1
vmovups xmmword [rsp + 0x70], xmm6
mov r8, qword [rbx + r8*8]
vmovups xmmword [rsp + 0x90], xmm4
vmovups xmmword [rsp + 0x80], xmm5
xor r8, qword [rbx + rax*8 + 0x800]
vmovdqu ymm6, ymmword [rsp + 0x20]
vmovdqu ymm4, ymmword [rsp + 0x40]
mov rax, rdx
vpxor ymm1, ymm4, ymmword [rsp + 0x80]
xor rax, r8
xor rax, r9
vpinsrq xmm0, xmm3, rax, 1
vmovups xmmword [rsp + 0x60], xmm0
vpxor ymm2, ymm6, ymmword [rsp + 0x60]
vextracti128 xmmword [rsp + 0x50], ymm1, 1
vmovups xmmword [rsp + 0x40], xmm1
vextracti128 xmmword [rsp + 0x30], ymm2, 1
vmovups xmmword [rsp + 0x20], xmm2
cmp r12, rsi
jne 0x47b040
vmovdqu ymm5, ymmword [rbp]
vmovdqu ymm6, ymmword [rdi + 0x20]
vpxor ymm0, ymm5, ymmword [rdi]
vpxor ymm0, ymm0, ymm2
vmovdqu ymmword [rdi], ymm0
vpxor ymm0, ymm6, ymmword [rbp + 0x20]
vpxor ymm0, ymm0, ymm1
vmovdqu ymmword [rdi + 0x20], ymm0
vzeroupper
vmovups xmm6, xmmword [rsp + 0xa0]
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret