Function at 0x1402964d0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x80
movaps xmmword [rsp + 0x70], xmm11
movaps xmmword [rsp + 0x60], xmm10
movapd xmmword [rsp + 0x50], xmm9
movapd xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x30], xmm7
movaps xmmword [rsp + 0x20], xmm6
mov rsi, rcx
mov byte [rcx + 0x61], 1
movupd xmm1, xmmword [rcx]
movupd xmm7, xmmword [rcx + 0x10]
subpd xmm7, xmm1
lea rdi, [rcx + 0x40]
movupd xmmword [rcx + 0x40], xmm7
cmp edx, 1
jne 0x140296530
movups xmm0, xmmword [rdi]
movups xmmword [rsi + 0x50], xmm0
mov byte [rsi + 0x60], 0
jmp 0x1402967e6
movupd xmm6, xmmword [rsi + 0x20]
subpd xmm6, xmm1
movupd xmmword [rsi + 0x50], xmm6
lea eax, [rdx + 1]
mov ecx, eax
sar ecx, 2
xorpd xmm0, xmm0
cmp ecx, edx
jg 0x140296595
sub eax, ecx
movapd xmm2, xmmword [0x14059bee0]
mov rcx, rsi
nop dword [rax + rax]
movapd xmm3, xmm0
movupd xmm0, xmmword [rcx]
movapd xmm4, xmm0
xorpd xmm4, xmm2
maxpd xmm4, xmm0
movapd xmm0, xmm4
unpckhpd xmm0, xmm4
maxsd xmm0, xmm4
maxsd xmm0, xmm3
add rcx, 0x10
dec rax
jne 0x140296560
mulsd xmm0, qword [0x1405b67a0]
lea rbx, [rsi + 0x50]
cmp edx, 4
jne 0x140296651
movupd xmm6, xmmword [rsi + 0x30]
subpd xmm6, xmm1
xorpd xmm8, xmm8
ucomisd xmm7, xmm8
jne 0x1402966ac
jp 0x1402966ac
movapd xmm1, xmm7
unpckhpd xmm1, xmm7
xorpd xmm2, xmm2
ucomisd xmm1, xmm2
jne 0x1402966ac
jp 0x1402966ac
movups xmm1, xmmword [rbx]
movups xmmword [rdi], xmm1
movupd xmmword [rbx], xmm6
movsd xmm1, qword [rdi]
ucomisd xmm1, xmm2
jne 0x1402965f3
jnp 0x14029660d
movapd xmm2, xmmword [0x1405b6740]
andpd xmm1, xmm2
andpd xmm2, xmm0
ucomisd xmm2, xmm1
jbe 0x14029679c
movsd xmm1, qword [rsi + 0x48]
xorpd xmm2, xmm2
ucomisd xmm1, xmm2
jne 0x14029661e
jnp 0x140296638
movapd xmm2, xmmword [0x1405b6740]
andpd xmm1, xmm2
andpd xmm0, xmm2
ucomisd xmm0, xmm1
jbe 0x14029679c
lea rax, [rsi + 0x10]
lea rcx, [rsi + 0x30]
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
jmp 0x14029679c
xorpd xmm1, xmm1
ucomisd xmm7, xmm1
jne 0x14029665d
jnp 0x14029667b
movapd xmm2, xmmword [0x1405b6740]
movapd xmm3, xmm7
andpd xmm3, xmm2
andpd xmm2, xmm0
ucomisd xmm2, xmm3
jbe 0x14029679c
unpckhpd xmm7, xmm7
ucomisd xmm7, xmm1
jne 0x140296687
jnp 0x1402966a1
movapd xmm1, xmmword [0x1405b6740]
andpd xmm7, xmm1
andpd xmm0, xmm1
ucomisd xmm0, xmm7
jbe 0x14029679c
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
jmp 0x14029679c
movapd xmm0, xmm6
shufpd xmm0, xmm6, 1
mulpd xmm7, xmm0
movapd xmm10, xmm7
unpckhpd xmm10, xmm7
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm10
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm7
call fcn.140181500
xorpd xmm9, xmm9
test al, al
jne 0x1402966ea
subsd xmm7, xmm10
movapd xmm9, xmm7
movupd xmm10, xmmword [rbx]
shufpd xmm10, xmm10, 1
mulpd xmm10, xmm6
movapd xmm11, xmm10
unpckhpd xmm11, xmm10
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm11
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm10
call fcn.140181500
xorpd xmm7, xmm7
test al, al
jne 0x14029672b
subsd xmm10, xmm11
movapd xmm7, xmm10
mulsd xmm9, xmm7
ucomisd xmm9, xmm8
jae 0x140296798
movupd xmm0, xmmword [rbx]
movupd xmm8, xmmword [rdi]
shufpd xmm8, xmm8, 1
mulpd xmm8, xmm0
movapd xmm9, xmm8
unpckhpd xmm9, xmm8
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm9
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm8
call fcn.140181500
xorps xmm0, xmm0
xorps xmm1, xmm1
test al, al
jne 0x14029677e
subsd xmm8, xmm9
movapd xmm1, xmm8
mulsd xmm7, xmm1
ucomisd xmm0, xmm7
jbe 0x140296792
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
mov byte [rsi + 0x61], 0
movupd xmmword [rbx], xmm6
jmp 0x14029679c
movupd xmm6, xmmword [rbx]
shufpd xmm6, xmm6, 1
movupd xmm7, xmmword [rsi + 0x40]
mulpd xmm7, xmm6
movapd xmm6, xmm7
unpckhpd xmm6, xmm7
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm6
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm7
call fcn.140181500
xorps xmm0, xmm0
xorps xmm1, xmm1
test al, al
jne 0x1402967d7
subsd xmm7, xmm6
movapd xmm1, xmm7
ucomisd xmm1, xmm0
setp al
setne cl
or cl, al
mov byte [rsi + 0x60], cl
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm10, xmmword [rsp + 0x60]
movaps xmm11, xmmword [rsp + 0x70]
add rsp, 0x80
pop rbx
pop rdi
pop rsi
ret