Function at 0x47af30
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]
vmovups xmmword [rsp + 0x60], xmm0
vextracti128 xmmword [rsp + 0x70], ymm0, 1
vmovdqu ymm0, ymmword [rcx + 0x20]
mov r12, rdx
vpxor ymm0, ymm0, ymmword [rdx + 0x20]
mov r13, r8
lea rcx, [rsp + 0x60]
vmovups xmmword [rsp + 0x80], xmm0
vextracti128 xmmword [rsp + 0x90], ymm0, 1
vzeroupper
lea r14, [0x006c8360]
call fcn.0047abd0
vmovdqu xmm5, xmmword [rsp + 0x60]
vinserti128 ymm0, ymm5, xmmword [rsp + 0x70], 1
lea rsi, [r14 + 0x300]
vpxor ymm0, ymm0, ymmword [r13]
lea r15, [rsp + 0x20]
vmovdqu xmm4, xmmword [rsp + 0x80]
lea rbx, [0x006c8660]
vmovups xmmword [rsp + 0x20], xmm0
vextracti128 xmmword [rsp + 0x30], ymm0, 1
vinserti128 ymm0, ymm4, xmmword [rsp + 0x90], 1
vpxor ymm0, ymm0, ymmword [r13 + 0x20]
vmovups xmmword [rsp + 0x40], xmm0
vextracti128 xmmword [rsp + 0x50], ymm0, 1
nop
mov rcx, r15
vzeroupper
call fcn.0047abd0
vmovdqu xmm5, xmmword [rsp + 0x60]
vmovdqu xmm4, xmmword [rsp + 0x80]
vinserti128 ymm1, ymm4, xmmword [rsp + 0x90], 1
vpxor ymm1, ymm1, ymmword [r14 + 0x20]
vinserti128 ymm0, ymm5, xmmword [rsp + 0x70], 1
vpxor ymm0, ymm0, ymmword [r14]
vextracti128 xmm3, ymm1, 1
vpextrb edx, xmm3, 8
vpextrb eax, xmm3, 0
vextracti128 xmm2, ymm0, 1
mov rcx, qword [rbx + rdx*8]
vpextrb edx, xmm3, 9
vpextrb r8d, xmm3, 5
xor rcx, qword [rbx + rax*8 + 0x800]
vpextrb eax, xmm1, 8
mov rdi, qword [rbx + rdx*8]
vpextrb edx, xmm3, 0xa
vpextrb r9d, xmm3, 0xe
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
mov r11, qword [rbx + r9*8]
vpextrb r9d, xmm3, 0xf
xor rbp, qword [rbx + rax*8 + 0x3000]
vpextrb eax, xmm3, 0xc
mov r9, qword [rbx + r9*8]
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
xor rax, qword [rbx + rdx*8 + 0x1800]
vpextrb edx, xmm2, 0xc
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]
vmovq xmm4, rax
vpextrb r9d, xmm0, 6
vpextrb eax, xmm0, 0
xor r11, qword [rbx + r9*8 + 0x3800]
vpextrb r9d, xmm0, 7
xor rcx, qword [rbx + rax*8 + 0x3800]
vpextrb eax, xmm0, 1
vmovq xmm5, r11
xor r8, qword [rbx + r9*8 + 0x3800]
xor rdi, qword [rbx + rax*8 + 0x3800]
vpextrb eax, xmm0, 2
vpinsrq xmm2, xmm5, r8, 1
xor r10, qword [rbx + rax*8 + 0x3800]
vpextrb eax, xmm0, 3
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 xmm5, xmmword [rsp + 0x20]
vinserti128 ymm2, ymm2, xmm0, 1
vmovdqu xmm4, xmmword [rsp + 0x40]
vinserti128 ymm0, ymm5, xmmword [rsp + 0x30], 1
vextracti128 xmmword [rsp + 0x90], ymm1, 1
vmovups xmmword [rsp + 0x60], xmm2
vextracti128 xmmword [rsp + 0x70], ymm2, 1
vinserti128 ymm2, ymm2, xmmword [rsp + 0x70], 1
vinserti128 ymm3, ymm4, xmmword [rsp + 0x50], 1
vmovups xmmword [rsp + 0x80], xmm1
vpxor ymm2, ymm2, ymm0
vinserti128 ymm0, ymm1, xmmword [rsp + 0x90], 1
vmovups xmmword [rsp + 0x20], xmm2
vextracti128 xmmword [rsp + 0x30], ymm2, 1
vpxor ymm0, ymm0, ymm3
vmovups xmmword [rsp + 0x40], xmm0
vextracti128 xmmword [rsp + 0x50], ymm0, 1
cmp r14, rsi
jne 0x47aff0
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