Function at 0x47a4e0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
vmovdqu ymm4, ymmword [rcx]
vpxor ymm0, ymm4, ymmword [rdx]
vmovdqu ymmword [rsp + 0x60], ymm0
vmovdqu ymm0, ymmword [rcx + 0x20]
mov r12, rdx
mov r13, r8
vpxor ymm0, ymm0, ymmword [rdx + 0x20]
lea rcx, [rsp + 0x60]
vmovdqu ymmword [rsp + 0x80], ymm0
vzeroupper
lea r14, [0x00687fe0]
lea r15, [rsp + 0x20]
call fcn.0047a190
vmovdqu ymm5, ymmword [rsp + 0x60]
vpxor ymm0, ymm5, ymmword [r13]
lea rsi, [r14 + 0x300]
vmovdqu ymm4, ymmword [rsp + 0x80]
lea rbx, [0x006882e0]
vmovdqu ymmword [rsp + 0x20], ymm0
vpxor ymm0, ymm4, ymmword [r13 + 0x20]
vmovdqu ymmword [rsp + 0x40], ymm0
nop dword [rax + rax]
mov rcx, r15
vzeroupper
call fcn.0047a190
vmovdqu ymm5, ymmword [rsp + 0x60]
vmovdqu ymm4, ymmword [rsp + 0x80]
vpxor ymm1, ymm4, ymmword [r14 + 0x20]
vpxor ymm0, ymm5, ymmword [r14]
vextracti128 xmm3, ymm1, 1
vextracti128 xmm2, ymm0, 1
vpextrb edx, xmm3, 8
vpextrb eax, xmm3, 0
vpextrb r8d, xmm3, 5
mov rcx, qword [rbx + rdx*8]
vpextrb edx, xmm3, 9
vpextrb r9d, xmm3, 0xe
xor rcx, qword [rbx + rax*8 + 0x800]
vpextrb eax, xmm1, 8
mov rdi, qword [rbx + rdx*8]
vpextrb edx, xmm3, 0xa
xor rcx, qword [rbx + rax*8 + 0x1000]
vpextrb eax, xmm1, 0
mov r10, qword [rbx + rdx*8]
vpextrb edx, xmm3, 0xb
xor rcx, qword [rbx + rax*8 + 0x1800]
vpextrb eax, xmm2, 8
mov rbp, qword [rbx + rdx*8]
vpextrb edx, xmm3, 4
xor rcx, qword [rbx + rax*8 + 0x2000]
vpextrb eax, xmm2, 0
xor rcx, qword [rbx + rax*8 + 0x2800]
vpextrb eax, xmm0, 8
xor rcx, qword [rbx + rax*8 + 0x3000]
vpextrb eax, xmm3, 1
xor rdi, qword [rbx + rax*8 + 0x800]
vpextrb eax, xmm1, 9
xor rdi, qword [rbx + rax*8 + 0x1000]
vpextrb eax, xmm1, 1
xor rdi, qword [rbx + rax*8 + 0x1800]
vpextrb eax, xmm2, 9
xor rdi, qword [rbx + rax*8 + 0x2000]
vpextrb eax, xmm2, 1
xor rdi, qword [rbx + rax*8 + 0x2800]
vpextrb eax, xmm0, 9
xor rdi, qword [rbx + rax*8 + 0x3000]
vpextrb eax, xmm3, 2
xor r10, qword [rbx + rax*8 + 0x800]
vpextrb eax, xmm1, 0xa
xor r10, qword [rbx + rax*8 + 0x1000]
vpextrb eax, xmm1, 2
xor r10, qword [rbx + rax*8 + 0x1800]
vpextrb eax, xmm2, 0xa
xor r10, qword [rbx + rax*8 + 0x2000]
vpextrb eax, xmm2, 2
xor r10, qword [rbx + rax*8 + 0x2800]
vpextrb eax, xmm0, 0xa
xor r10, qword [rbx + rax*8 + 0x3000]
vpextrb eax, xmm3, 3
xor rbp, qword [rbx + rax*8 + 0x800]
vpextrb eax, xmm1, 0xb
xor rbp, qword [rbx + rax*8 + 0x1000]
vpextrb eax, xmm1, 3
xor rbp, qword [rbx + rax*8 + 0x1800]
vpextrb eax, xmm2, 0xb
xor rbp, qword [rbx + rax*8 + 0x2000]
vpextrb eax, xmm2, 3
xor rbp, qword [rbx + rax*8 + 0x2800]
vpextrb eax, xmm0, 0xb
xor rbp, qword [rbx + rax*8 + 0x3000]
vpextrb eax, xmm3, 0xc
mov rax, qword [rbx + rax*8]
xor rax, qword [rbx + rdx*8 + 0x800]
vpextrb edx, xmm1, 0xc
xor rax, qword [rbx + rdx*8 + 0x1000]
vpextrb edx, xmm1, 4
mov r11, qword [rbx + r9*8]
vpextrb r9d, xmm3, 0xf
xor rax, qword [rbx + rdx*8 + 0x1800]
vpextrb edx, xmm2, 0xc
mov r9, qword [rbx + r9*8]
xor rax, qword [rbx + rdx*8 + 0x2000]
vpextrb edx, xmm2, 4
xor rax, qword [rbx + rdx*8 + 0x2800]
vpextrb edx, xmm0, 0xc
xor rax, qword [rbx + rdx*8 + 0x3000]
vpextrb edx, xmm3, 0xd
mov rdx, qword [rbx + rdx*8]
xor rdx, qword [rbx + r8*8 + 0x800]
vpextrb r8d, xmm1, 0xd
xor rdx, qword [rbx + r8*8 + 0x1000]
vpextrb r8d, xmm1, 5
add r14, 0x40
xor rdx, qword [rbx + r8*8 + 0x1800]
vpextrb r8d, xmm2, 0xd
xor rdx, qword [rbx + r8*8 + 0x2000]
vpextrb r8d, xmm2, 5
xor rdx, qword [rbx + r8*8 + 0x2800]
vpextrb r8d, xmm0, 0xd
xor rdx, qword [rbx + r8*8 + 0x3000]
vpextrb r8d, xmm3, 6
xor r11, qword [rbx + r8*8 + 0x800]
vpextrb r8d, xmm1, 0xe
xor r11, qword [rbx + r8*8 + 0x1000]
vpextrb r8d, xmm1, 6
xor r11, qword [rbx + r8*8 + 0x1800]
vpextrb r8d, xmm2, 0xe
xor r11, qword [rbx + r8*8 + 0x2000]
vpextrb r8d, xmm2, 6
xor r11, qword [rbx + r8*8 + 0x2800]
vpextrb r8d, xmm0, 0xe
xor r11, qword [rbx + r8*8 + 0x3000]
vpextrb r8d, xmm3, 7
xor r9, qword [rbx + r8*8 + 0x800]
mov r8, r9
vpextrb r9d, xmm1, 0xf
xor r8, qword [rbx + r9*8 + 0x1000]
vpextrb r9d, xmm1, 7
xor r8, qword [rbx + r9*8 + 0x1800]
vpextrb r9d, xmm2, 0xf
xor r8, qword [rbx + r9*8 + 0x2000]
vpextrb r9d, xmm2, 7
xor r8, qword [rbx + r9*8 + 0x2800]
vpextrb r9d, xmm0, 0xf
xor r8, qword [rbx + r9*8 + 0x3000]
vpextrb r9d, xmm0, 4
xor rax, qword [rbx + r9*8 + 0x3800]
vpextrb r9d, xmm0, 5
xor rdx, qword [rbx + r9*8 + 0x3800]
vpextrb r9d, xmm0, 6
vmovq xmm4, rax
xor r11, qword [rbx + r9*8 + 0x3800]
vpextrb eax, xmm0, 0
vpextrb r9d, xmm0, 7
xor r8, qword [rbx + r9*8 + 0x3800]
xor rcx, qword [rbx + rax*8 + 0x3800]
vpextrb eax, xmm0, 1
xor rdi, qword [rbx + rax*8 + 0x3800]
vpextrb eax, xmm0, 2
vmovq xmm5, r11
xor r10, qword [rbx + rax*8 + 0x3800]
vpextrb eax, xmm0, 3
vpinsrq xmm2, xmm5, r8, 1
vpinsrq xmm1, xmm4, rdx, 1
vmovq xmm5, r10
vmovq xmm4, rcx
xor rbp, qword [rbx + rax*8 + 0x3800]
vinserti128 ymm1, ymm1, xmm2, 1
vpinsrq xmm0, xmm5, rbp, 1
vpinsrq xmm2, xmm4, rdi, 1
vmovdqu ymmword [rsp + 0x80], ymm1
vinserti128 ymm2, ymm2, xmm0, 1
vpxor ymm0, ymm1, ymmword [rsp + 0x40]
vmovdqu ymmword [rsp + 0x60], ymm2
vpxor ymm2, ymm2, ymmword [rsp + 0x20]
vmovdqu ymmword [rsp + 0x40], ymm0
vmovdqu ymmword [rsp + 0x20], ymm2
cmp r14, rsi
jne 0x47a570
vmovdqu ymm5, ymmword [r13]
vpxor ymm1, ymm5, ymmword [r12]
vmovdqu ymm4, ymmword [r12 + 0x20]
vpxor ymm2, ymm1, ymm2
vmovdqu ymmword [r12], ymm2
vpxor ymm1, ymm4, ymmword [r13 + 0x20]
vpxor ymm0, ymm1, ymm0
vmovdqu ymmword [r12 + 0x20], ymm0
vzeroupper
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret