Function at 0x1400d9870
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push r14
push r15
sub rsp, 0x28
movsxd r10, dword [rsp + 0x80]
mov rdi, rcx
mov rcx, qword [rsp + 0x78]
mov rsi, r8
mov r14d, dword [rsp + 0x88]
mov r15, r10
shr rcx, 2
shr rdx, 2
shr r9, 2
test r14d, r14d
je 0x1400d9b36
mov r8, qword [rsp + 0x90]
lea eax, [r10 - 8]
mov qword [rsp + 0x50], rbx
lea r11, [rdx*4]
mov qword [rsp + 0x20], rbp
lea r9, [r9*4]
mov rbp, qword [rsp + 0x70]
lea rcx, [rcx*4]
mov qword [rsp + 0x18], r12
mov qword [rsp + 0x10], r13
movsxd r13, eax
lea eax, [r10 - 4]
movsxd r12, eax
movaps xmmword [rsp], xmm6
mov qword [rsp + 0x78], r11
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x68], rcx
nop dword [rax + rax]
dec r14d
xor ebx, ebx
test r13, r13
js 0x1400d99af
mov rdx, rbp
lea rax, [r13 + 8]
mov r9, rsi
lea rcx, [rdi + 0x10]
sub rdx, rdi
sub r9, rdi
shr rax, 3
xorps xmm6, xmm6
lea rbx, [rax*8]
movss xmm2, dword [r8]
shufps xmm2, xmm2, 0
movdqu xmm0, xmmword [rcx - 0x10]
movdqu xmm4, xmmword [r9 + rcx - 0x10]
movdqu xmm5, xmmword [r9 + rcx]
lea rcx, [rcx + 0x20]
cvtdq2ps xmm1, xmm0
cvtdq2ps xmm0, xmm4
mulps xmm1, xmm2
pcmpeqd xmm4, xmm6
divps xmm1, xmm0
movdqu xmm0, xmmword [rcx - 0x20]
cvtps2dq xmm3, xmm1
cvtdq2ps xmm1, xmm0
pand xmm4, xmm3
mulps xmm1, xmm2
pxor xmm4, xmm3
cvtdq2ps xmm0, xmm5
pcmpeqd xmm5, xmm6
divps xmm1, xmm0
movdqu xmmword [rdx + rcx - 0x30], xmm4
cvtps2dq xmm2, xmm1
pand xmm5, xmm2
pxor xmm5, xmm2
movdqu xmmword [rdx + rcx - 0x20], xmm5
sub rax, 1
jne 0x1400d9941
cmp rbx, r12
jg 0x1400d9ab8
lea rax, [rbx + 1]
mov r11, r12
sub r11, rbx
lea rax, [rdi + rax*4]
mov rcx, rsi
shr r11, 2
mov rdx, rbp
sub rcx, rdi
sub rdx, rdi
inc r11
lea rbx, [rbx + r11*4]
nop dword [rax]
mov r9d, dword [rcx + rax - 4]
test r9d, r9d
je 0x1400d9a0a
movd xmm1, dword [rax - 4]
cvtdq2ps xmm1, xmm1
movd xmm0, r9d
mulss xmm1, dword [r8]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvtss2si r10d, xmm1
jmp 0x1400d9a0d
xor r10d, r10d
mov r9d, dword [rcx + rax]
test r9d, r9d
je 0x1400d9a35
movd xmm1, dword [rax]
cvtdq2ps xmm1, xmm1
movd xmm0, r9d
mulss xmm1, dword [r8]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvtss2si r9d, xmm1
jmp 0x1400d9a38
xor r9d, r9d
mov dword [rdx + rax - 4], r10d
mov dword [rdx + rax], r9d
mov r9d, dword [rcx + rax + 4]
test r9d, r9d
je 0x1400d9a6b
movd xmm1, dword [rax + 4]
cvtdq2ps xmm1, xmm1
movd xmm0, r9d
mulss xmm1, dword [r8]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvtss2si r10d, xmm1
jmp 0x1400d9a6e
xor r10d, r10d
mov r9d, dword [rcx + rax + 8]
test r9d, r9d
je 0x1400d9a98
movd xmm1, dword [rax + 8]
cvtdq2ps xmm1, xmm1
movd xmm0, r9d
mulss xmm1, dword [r8]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvtss2si r9d, xmm1
jmp 0x1400d9a9b
xor r9d, r9d
mov dword [rdx + rax + 4], r10d
mov dword [rdx + rax + 8], r9d
add rax, 0x10
sub r11, 1
jne 0x1400d99e0
mov r11, qword [rsp + 0x78]
cmp rbx, r15
jge 0x1400d9b08
mov r9, rsi
lea rax, [rdi + rbx*4]
mov r10, rbp
sub r9, rdi
sub r10, rdi
mov rdx, r15
sub rdx, rbx
mov ecx, dword [r9 + rax]
test ecx, ecx
je 0x1400d9af8
movd xmm1, dword [rax]
cvtdq2ps xmm1, xmm1
movd xmm0, ecx
mulss xmm1, dword [r8]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
cvtss2si ecx, xmm1
jmp 0x1400d9afa
xor ecx, ecx
mov dword [r10 + rax], ecx
add rax, 4
sub rdx, 1
jne 0x1400d9ad3
add rsi, qword [rsp + 0x58]
add rdi, r11
add rbp, qword [rsp + 0x68]
test r14d, r14d
jne 0x1400d9910
movaps xmm6, xmmword [rsp]
mov r13, qword [rsp + 0x10]
mov r12, qword [rsp + 0x18]
mov rbp, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x50]
add rsp, 0x28
pop r15
pop r14
pop rdi
pop rsi
ret