Function at 0x14012a520
Capabilities:
Encode data using xor

Disassembly:
mov r8, qword [r8]
mov rdx, qword [rdx]
mov rcx, qword [rcx + 8]
jmp 0x14012a520
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r15
sub rsp, 0x90
movups xmm0, xmmword [rcx]
mov rax, r8
mov rdi, r8
sub rax, rdx
movups xmmword [rsp], xmm0
mov r15, qword [rsp]
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rsp + 0x20], xmm0
mov r8, qword [rsp + 0x20]
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rsp + 0x40], xmm0
mov r11, qword [rsp + 0x40]
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rsp + 0x60], xmm0
mov rbx, qword [rsp + 0x68]
cmp rax, 4
jl 0x14012a6d5
mov qword [rsp + 0xb0], r14
lea r14, [rdi - 0x10]
cmp rdx, r14
jg 0x14012a628
movdqa xmm4, xmmword [0x1402b1e90]
lea rcx, [rbx + rdx*4]
mov rsi, r15
mov rbp, r11
sub rsi, rbx
xorps xmm5, xmm5
sub rbp, rbx
nop dword [rax]
lea r9, [r8 + 2]
mov r10d, 4
add r9, rdx
nop dword [rax]
movzx eax, byte [r9 + 1]
lea r9, [r9 + 4]
xorps xmm0, xmm0
xorps xmm3, xmm3
xorps xmm2, xmm2
xorps xmm1, xmm1
cvtsi2ss xmm2, eax
movzx eax, byte [r9 - 4]
cvtsi2ss xmm0, eax
movzx eax, byte [r9 - 5]
cvtsi2ss xmm1, eax
movzx eax, byte [r9 - 6]
cvtsi2ss xmm3, eax
unpcklps xmm1, xmm2
unpcklps xmm3, xmm0
movups xmm0, xmmword [rcx]
unpcklps xmm3, xmm1
xorps xmm0, xmm4
cmpeqps xmm3, xmm5
andps xmm0, xmm3
andnps xmm3, xmmword [rcx + rbp]
orps xmm0, xmm3
movups xmmword [rsi + rcx], xmm0
add rcx, 0x10
sub r10, 1
jne 0x14012a5c0
add rdx, 0x10
cmp rdx, r14
jle 0x14012a5b0
mov r14, qword [rsp + 0xb0]
lea rcx, [rdi - 4]
cmp rdx, rcx
jg 0x14012a6d5
movdqa xmm4, xmmword [0x1402b1e90]
lea r9, [r8 + 2]
sub rcx, rdx
lea r10, [rbx + rdx*4]
add r9, rdx
shr rcx, 2
mov rsi, r15
mov rbp, r11
sub rsi, rbx
sub rbp, rbx
inc rcx
xorps xmm5, xmm5
lea rdx, [rdx + rcx*4]
nop dword [rax]
movzx eax, byte [r9 + 1]
xorps xmm0, xmm0
lea r10, [r10 + 0x10]
xorps xmm3, xmm3
lea r9, [r9 + 4]
xorps xmm2, xmm2
xorps xmm1, xmm1
cvtsi2ss xmm2, eax
movzx eax, byte [r9 - 4]
cvtsi2ss xmm0, eax
movzx eax, byte [r9 - 5]
cvtsi2ss xmm1, eax
movzx eax, byte [r9 - 6]
cvtsi2ss xmm3, eax
unpcklps xmm1, xmm2
unpcklps xmm3, xmm0
movups xmm0, xmmword [r10 - 0x10]
unpcklps xmm3, xmm1
xorps xmm0, xmm4
cmpeqps xmm3, xmm5
andps xmm0, xmm3
andnps xmm3, xmmword [r10 + rbp - 0x10]
orps xmm0, xmm3
movups xmmword [r10 + rsi - 0x10], xmm0
sub rcx, 1
jne 0x14012a670
cmp rdx, rdi
jge 0x14012a7de
movss xmm1, dword [0x1402b1e90]
mov rax, rdi
sub rax, rdx
cmp rax, 4
jl 0x14012a7a7
mov rcx, r15
lea rax, [r11 + 8]
mov r10, rbx
lea rbp, [rdi - 3]
sub rcx, r11
lea rax, [rax + rdx*4]
sub r10, r11
mov rsi, 0xfffffffffffffff8
sub rsi, r11
cmp byte [r8 + rdx], 0
je 0x14012a726
movss xmm0, dword [rax - 8]
jmp 0x14012a730
movss xmm0, dword [r10 + rax - 8]
xorps xmm0, xmm1
movss dword [rcx + rax - 8], xmm0
lea r9, [rsi + rax]
cmp byte [r8 + rdx + 1], 0
je 0x14012a74b
movss xmm0, dword [r9 + r11 + 4]
jmp 0x14012a755
movss xmm0, dword [r9 + rbx + 4]
xorps xmm0, xmm1
movss dword [rcx + rax - 4], xmm0
cmp byte [r8 + rdx + 2], 0
je 0x14012a769
movss xmm0, dword [rax]
jmp 0x14012a772
movss xmm0, dword [r10 + rax]
xorps xmm0, xmm1
movss dword [rcx + rax], xmm0
cmp byte [r8 + rdx + 3], 0
je 0x14012a786
movss xmm0, dword [rax + 4]
jmp 0x14012a790
movss xmm0, dword [r10 + rax + 4]
xorps xmm0, xmm1
movss dword [rcx + rax + 4], xmm0
add rdx, 4
add rax, 0x10
cmp rdx, rbp
jl 0x14012a718
cmp rdx, rdi
jge 0x14012a7de
sub r11, rbx
lea rax, [rbx + rdx*4]
sub r15, rbx
cmp byte [r8 + rdx], 0
je 0x14012a7c5
movss xmm0, dword [rax + r11]
jmp 0x14012a7cc
movss xmm0, dword [rax]
xorps xmm0, xmm1
movss dword [rax + r15], xmm0
inc rdx
add rax, 4
cmp rdx, rdi
jl 0x14012a7b6
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop rdi
pop rsi
ret