Function at 0x515850
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
movups xmmword [rsp + 0x60], xmm6
movups xmmword [rsp + 0x70], xmm7
movups xmmword [rsp + 0x80], xmm8
movups xmmword [rsp + 0x90], xmm9
movups xmmword [rsp + 0xa0], xmm10
movups xmmword [rsp + 0xb0], xmm11
movups xmmword [rsp + 0xc0], xmm12
movups xmmword [rsp + 0xd0], xmm13
movups xmmword [rsp + 0xe0], xmm14
movups xmmword [rsp + 0xf0], xmm15
movdqu xmm3, xmmword [rcx]
movdqu xmm0, xmmword [rcx + 0x10]
movdqu xmm13, xmm3
movdqu xmm1, xmmword [rcx + 0x20]
pblendw xmm13, xmm0, 0xcc
pblendw xmm3, xmm0, 0x33
movdqu xmm0, xmmword [rcx + 0x30]
movdqu xmm4, xmm1
movdqu xmm12, xmm3
movdqu xmm2, xmm13
movdqu xmm6, xmmword [rcx + 0xb0]
pblendw xmm1, xmm0, 0x33
pblendw xmm4, xmm0, 0xcc
mov r10, rdx
pblendw xmm12, xmm1, 0x3c
pblendw xmm3, xmm1, 0xc3
pblendw xmm2, xmm4, 0xf0
movdqu xmm1, xmmword [rcx + 0x80]
pblendw xmm13, xmm4, 0xf
mov edx, r8d
movups xmmword [rcx], xmm2
mov rax, rcx
movdqu xmm11, xmm1
shl edx, 5
movups xmmword [rsp + 0x50], xmm2
mov r13d, r8d
movdqu xmm4, xmmword [rcx + 0x90]
movups xmmword [rcx + 0x10], xmm12
lea r11, [r10 + rdx*4]
movups xmmword [rcx + 0x20], xmm13
lea rdi, [rcx + 0x80]
movups xmmword [rcx + 0x30], xmm3
pblendw xmm11, xmm4, 0xcc
pblendw xmm1, xmm4, 0x33
movdqu xmm4, xmmword [rcx + 0xa0]
lea rbx, [rcx + 0xc0]
movdqu xmm10, xmm1
lea rsi, [rcx + 0x40]
movdqu xmm5, xmm4
pblendw xmm4, xmm6, 0x33
pblendw xmm1, xmm4, 0xc3
pblendw xmm10, xmm4, 0x3c
movdqu xmm4, xmmword [rcx + 0x50]
pblendw xmm5, xmm6, 0xcc
movups xmmword [rsp + 0x20], xmm1
movdqu xmm6, xmm11
pblendw xmm11, xmm5, 0xf
movups xmmword [rcx + 0xb0], xmm1
movdqu xmm1, xmmword [rcx + 0x40]
pblendw xmm6, xmm5, 0xf0
movdqu xmm5, xmmword [rcx + 0x70]
movups xmmword [rcx + 0x80], xmm6
movdqu xmm7, xmm1
pblendw xmm1, xmm4, 0x33
movups xmmword [rcx + 0x90], xmm10
pblendw xmm7, xmm4, 0xcc
movdqu xmm4, xmmword [rcx + 0x60]
movdqu xmm9, xmm1
movups xmmword [rcx + 0xa0], xmm11
movdqu xmm8, xmm4
pblendw xmm4, xmm5, 0x33
pblendw xmm1, xmm4, 0xc3
pblendw xmm8, xmm5, 0xcc
pblendw xmm9, xmm4, 0x3c
movdqu xmm4, xmmword [rcx + 0xd0]
movups xmmword [rcx + 0x70], xmm1
movdqu xmm15, xmm1
movdqu xmm5, xmm7
movdqu xmm1, xmmword [rcx + 0xc0]
pblendw xmm7, xmm8, 0xf
pblendw xmm5, xmm8, 0xf0
movups xmmword [rcx + 0x50], xmm9
movups xmmword [rcx + 0x60], xmm7
movdqu xmm8, xmm1
movdqu xmm14, xmm7
movdqu xmm7, xmmword [rcx + 0xe0]
pblendw xmm8, xmm4, 0xcc
pblendw xmm1, xmm4, 0x33
movups xmmword [rcx + 0x40], xmm5
movdqu xmm4, xmmword [rcx + 0xf0]
movdqu xmm0, xmm7
pblendw xmm0, xmm4, 0xcc
pblendw xmm7, xmm4, 0x33
movdqu xmm4, xmm8
movups xmmword [rsp + 0x30], xmm0
pblendw xmm4, xmm0, 0xf0
movdqu xmm0, xmm1
pblendw xmm0, xmm7, 0x3c
movups xmmword [rcx + 0xc0], xmm4
movups xmmword [rsp + 0x40], xmm7
pblendw xmm1, xmmword [rsp + 0x40], 0xc3
movdqu xmm7, xmm0
pblendw xmm8, xmmword [rsp + 0x30], 0xf
movups xmmword [rcx + 0xd0], xmm0
movups xmmword [rcx + 0xe0], xmm8
movups xmmword [rcx + 0xf0], xmm1
test r8d, r8d
je 0x515deb
lea edx, [r8 - 1]
mov rbp, r10
mov r14, r11
mov r12, rdx
shl rdx, 7
movdqu xmm0, xmm2
lea r15, [r10 + rdx + 0x80]
jmp 0x515b0c
movdqu xmm0, xmmword [rax]
movntdq xmmword [rbp], xmm0
mov rcx, rax
mov r9, rbx
mov r8, rsi
movdqu xmm6, xmmword [rax + 0x80]
mov rdx, rdi
sub rbp, 0xffffffffffffff80
sub r14, 0xffffffffffffff80
movntdq xmmword [r14 - 0x80], xmm6
movdqu xmm7, xmmword [rax + 0x10]
movntdq xmmword [rbp - 0x70], xmm7
movdqu xmm5, xmmword [rax + 0x90]
movntdq xmmword [r14 - 0x70], xmm5
movdqu xmm3, xmmword [rax + 0x20]
movntdq xmmword [rbp - 0x60], xmm3
movdqu xmm2, xmmword [rax + 0xa0]
movntdq xmmword [r14 - 0x60], xmm2
movdqu xmm6, xmmword [rax + 0x30]
movntdq xmmword [rbp - 0x50], xmm6
movdqu xmm7, xmmword [rax + 0xb0]
movntdq xmmword [r14 - 0x50], xmm7
movdqu xmm5, xmmword [rax + 0x40]
movntdq xmmword [rbp - 0x40], xmm5
movdqu xmm3, xmmword [rax + 0xc0]
movntdq xmmword [r14 - 0x40], xmm3
movdqu xmm4, xmmword [rax + 0x50]
movntdq xmmword [rbp - 0x30], xmm4
movdqu xmm2, xmmword [rax + 0xd0]
movntdq xmmword [r14 - 0x30], xmm2
movdqu xmm6, xmmword [rax + 0x60]
movntdq xmmword [rbp - 0x20], xmm6
movdqu xmm7, xmmword [rax + 0xe0]
movntdq xmmword [r14 - 0x20], xmm7
movdqu xmm5, xmmword [rax + 0x70]
movntdq xmmword [rbp - 0x10], xmm5
movdqu xmm3, xmmword [rax + 0xf0]
movntdq xmmword [r14 - 0x10], xmm3
call fcn.00513490
mov r9, rdi
mov rdx, rbx
mov r8, rax
mov rcx, rsi
call fcn.00513490
cmp r15, rbp
jne 0x515b08
xor ebp, ebp
nop dword [rax]
mov edx, dword [rax + 0x40]
mov r9, rbx
mov r8, rsi
add ebp, 1
mov ecx, dword [rax + 0xc0]
and edx, r12d
and ecx, r12d
shl edx, 3
shl ecx, 3
shl rdx, 4
shl rcx, 4
movdqu xmm1, xmmword [r10 + rdx]
pxor xmm1, xmmword [rax]
movdqu xmm0, xmmword [r11 + rcx]
movups xmmword [rax], xmm1
pxor xmm0, xmmword [rax + 0x80]
movups xmmword [rax + 0x80], xmm0
movdqu xmm0, xmmword [r11 + rcx + 0x10]
pxor xmm0, xmmword [rax + 0x90]
movdqu xmm1, xmmword [r10 + rdx + 0x10]
movups xmmword [rax + 0x90], xmm0
pxor xmm1, xmmword [rax + 0x10]
movups xmmword [rax + 0x10], xmm1
movdqu xmm0, xmmword [r11 + rcx + 0x20]
pxor xmm0, xmmword [rax + 0xa0]
movdqu xmm1, xmmword [r10 + rdx + 0x20]
movups xmmword [rax + 0xa0], xmm0
pxor xmm1, xmmword [rax + 0x20]
movups xmmword [rax + 0x20], xmm1
movdqu xmm0, xmmword [r11 + rcx + 0x30]
pxor xmm0, xmmword [rax + 0xb0]
movdqu xmm1, xmmword [r10 + rdx + 0x30]
movups xmmword [rax + 0xb0], xmm0
pxor xmm1, xmmword [rax + 0x30]
movups xmmword [rax + 0x30], xmm1
movdqu xmm0, xmmword [r11 + rcx + 0x40]
pxor xmm0, xmmword [rax + 0xc0]
movdqu xmm1, xmmword [r10 + rdx + 0x40]
movups xmmword [rax + 0xc0], xmm0
pxor xmm1, xmmword [rax + 0x40]
movups xmmword [rax + 0x40], xmm1
movdqu xmm0, xmmword [r11 + rcx + 0x50]
pxor xmm0, xmmword [rax + 0xd0]
movdqu xmm1, xmmword [r10 + rdx + 0x50]
movups xmmword [rax + 0xd0], xmm0
pxor xmm1, xmmword [rax + 0x50]
movups xmmword [rax + 0x50], xmm1
movdqu xmm0, xmmword [r11 + rcx + 0x60]
pxor xmm0, xmmword [rax + 0xe0]
movdqu xmm1, xmmword [r10 + rdx + 0x60]
movups xmmword [rax + 0xe0], xmm0
pxor xmm1, xmmword [rax + 0x60]
movups xmmword [rax + 0x60], xmm1
movdqu xmm0, xmmword [r11 + rcx + 0x70]
mov rcx, rax
pxor xmm0, xmmword [rax + 0xf0]
movdqu xmm1, xmmword [r10 + rdx + 0x70]
mov rdx, rdi
pxor xmm1, xmmword [rax + 0x70]
movups xmmword [rax + 0x70], xmm1
movups xmmword [rax + 0xf0], xmm0
call fcn.00513490
mov r9, rdi
mov rdx, rbx
mov rcx, rsi
mov r8, rax
call fcn.00513490
cmp ebp, r13d
jne 0x515c00
movdqu xmm0, xmmword [rax + 0xb0]
movdqu xmm14, xmmword [rax + 0x60]
movdqu xmm5, xmmword [rax + 0x40]
movups xmmword [rsp + 0x20], xmm0
movdqu xmm15, xmmword [rax + 0x70]
movdqu xmm9, xmmword [rax + 0x50]
movdqu xmm8, xmmword [rax + 0xe0]
movdqu xmm4, xmmword [rax + 0xc0]
movdqu xmm1, xmmword [rax + 0xf0]
movdqu xmm7, xmmword [rax + 0xd0]
movdqu xmm13, xmmword [rax + 0x20]
movdqu xmm2, xmmword [rax]
movdqu xmm3, xmmword [rax + 0x30]
movdqu xmm12, xmmword [rax + 0x10]
movdqu xmm11, xmmword [rax + 0xa0]
movdqu xmm6, xmmword [rax + 0x80]
movdqu xmm10, xmmword [rax + 0x90]
movdqu xmm0, xmm2
pblendw xmm2, xmm13, 0xf
pblendw xmm0, xmm13, 0xf0
movdqu xmm13, xmm12
pblendw xmm12, xmm3, 0xc3
pblendw xmm13, xmm3, 0x3c
movdqu xmm3, xmm0
pblendw xmm0, xmm13, 0x33
pblendw xmm3, xmm13, 0xcc
movups xmm13, xmmword [rsp + 0xd0]
movups xmmword [rax + 0x10], xmm0
movdqu xmm0, xmm2
pblendw xmm2, xmm12, 0x33
pblendw xmm0, xmm12, 0xcc
movups xmmword [rax], xmm3
movdqu xmm3, xmmword [rsp + 0x20]
movups xmm12, xmmword [rsp + 0xc0]
movups xmmword [rax + 0x20], xmm0
movdqu xmm0, xmm6
pblendw xmm6, xmm11, 0xf
movups xmmword [rax + 0x30], xmm2
movdqu xmm2, xmm10
pblendw xmm0, xmm11, 0xf0
pblendw xmm10, xmm3, 0xc3
movups xmm11, xmmword [rsp + 0xb0]
pblendw xmm2, xmm3, 0x3c
movdqu xmm3, xmm0
pblendw xmm0, xmm2, 0x33
pblendw xmm3, xmm2, 0xcc
movdqu xmm2, xmm9
movups xmmword [rax + 0x90], xmm0
movdqu xmm0, xmm6
pblendw xmm2, xmm15, 0x3c
pblendw xmm9, xmm15, 0xc3
pblendw xmm0, xmm10, 0xcc
movups xmmword [rax + 0x80], xmm3
pblendw xmm6, xmm10, 0x33
movups xmm15, xmmword [rsp + 0xf0]
movups xmm10, xmmword [rsp + 0xa0]
movups xmmword [rax + 0xa0], xmm0
movdqu xmm0, xmm5
pblendw xmm5, xmm14, 0xf
pblendw xmm0, xmm14, 0xf0
movups xmmword [rax + 0xb0], xmm6
movups xmm14, xmmword [rsp + 0xe0]
movdqu xmm3, xmm0
pblendw xmm0, xmm2, 0x33
movups xmm6, xmmword [rsp + 0x60]
movups xmmword [rax + 0x50], xmm0
movdqu xmm0, xmm5
pblendw xmm3, xmm2, 0xcc
movdqu xmm2, xmm7
pblendw xmm2, xmm1, 0x3c
pblendw xmm0, xmm9, 0xcc
movups xmmword [rax + 0x40], xmm3
pblendw xmm7, xmm1, 0xc3
movups xmmword [rax + 0x60], xmm0
movdqu xmm0, xmm4
pblendw xmm4, xmm8, 0xf
pblendw xmm5, xmm9, 0x33
pblendw xmm0, xmm8, 0xf0
movups xmmword [rax + 0x70], xmm5
movups xmm8, xmmword [rsp + 0x80]
movups xmm9, xmmword [rsp + 0x90]
movdqu xmm1, xmm0
pblendw xmm0, xmm2, 0x33
movups xmmword [rax + 0xd0], xmm0
movdqu xmm0, xmm4
pblendw xmm4, xmm7, 0x33
pblendw xmm1, xmm2, 0xcc
pblendw xmm0, xmm7, 0xcc
movups xmm7, xmmword [rsp + 0x70]
movups xmmword [rax + 0xc0], xmm1
movups xmmword [rax + 0xe0], xmm0
movups xmmword [rax + 0xf0], xmm4
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret