Function at 0x18051f3d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov r13, qword [rsp + 0xb0]
mov r9, rdx
movss xmm3, dword [0x180601f60]
mov r12, rcx
shr r9, 2
shr r13, 2
movsxd rax, r8d
mov qword [rsp + 0x98], r9
mov rcx, rax
mov qword [rsp + 0xb0], r13
mov qword [rsp], rax
test r8d, r8d
jle 0x18051f689
mov r11, qword [rsp + 0x98]
lea rbp, [r9*4]
movsd xmm4, qword [0x180601648]
lea r14, [rbp + 4]
movsd xmm5, qword [0x180601790]
mov r10, r11
neg r10
mov qword [rsp + 0x10], r12
xor ebx, ebx
xor esi, esi
shl r10, 2
mov eax, 4
mov qword [rsp + 0x18], r10
mov r9, r12
mov rdi, r12
mov qword [rsp + 8], rax
nop dword [rax]
xor r15d, r15d
xor r8d, r8d
test rbx, rbx
jle 0x18051f58f
mov r11, r12
mov r10, rdi
mov rdx, rax
mov r15d, ebx
nop dword [rax + rax]
movss xmm2, dword [r10]
xor r9d, r9d
cvtps2pd xmm2, xmm2
cmp r8, 4
jl 0x18051f520
lea rcx, [r8 - 4]
shr rcx, 2
lea rax, [rdi + 4]
inc rcx
lea r9, [rcx*4]
nop dword [rax + rax]
movss xmm0, dword [rax + rdx - 8]
mulss xmm0, dword [rax - 4]
cvtps2pd xmm1, xmm0
movss xmm0, dword [rax + rdx - 4]
mulss xmm0, dword [rax]
subsd xmm2, xmm1
cvtps2pd xmm1, xmm0
movss xmm0, dword [rax + rdx]
mulss xmm0, dword [rax + 4]
subsd xmm2, xmm1
cvtps2pd xmm1, xmm0
movss xmm0, dword [rax + rdx + 4]
mulss xmm0, dword [rax + 8]
subsd xmm2, xmm1
add rax, 0x10
cvtps2pd xmm1, xmm0
subsd xmm2, xmm1
sub rcx, 1
jne 0x18051f4d0
cmp r9, r8
jge 0x18051f552
lea rax, [r9 + rsi]
lea rcx, [r12 + rax*4]
mov rax, r8
sub rax, r9
movss xmm0, dword [rdx + rcx - 4]
mulss xmm0, dword [rcx]
add rcx, 4
xorps xmm0, xmm3
cvtss2sd xmm0, xmm0
addsd xmm2, xmm0
sub rax, 1
jne 0x18051f533
movss xmm0, dword [r11]
inc r8
cvtps2pd xmm0, xmm0
add rdx, rbp
add r11, r14
mulsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [r10], xmm0
add r10, 4
cmp r8, rbx
jl 0x18051f4a0
mov r9, qword [rsp + 0x10]
mov r10, qword [rsp + 0x18]
mov r11, qword [rsp + 0x98]
movss xmm2, dword [r9]
xor r8d, r8d
movsxd rcx, r15d
cvtps2pd xmm2, xmm2
cmp rcx, 4
jl 0x18051f609
lea rdx, [rcx - 4]
mov rax, rdi
shr rdx, 2
inc rdx
lea r8, [rdx*4]
nop dword [rax]
movss xmm0, dword [rax]
movss xmm1, dword [rax + 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm0
mulsd xmm1, xmm1
subsd xmm2, xmm0
movss xmm0, dword [rax + 8]
cvtps2pd xmm0, xmm0
subsd xmm2, xmm1
movss xmm1, dword [rax + 0xc]
cvtps2pd xmm1, xmm1
add rax, 0x10
mulsd xmm0, xmm0
mulsd xmm1, xmm1
subsd xmm2, xmm0
subsd xmm2, xmm1
sub rdx, 1
jne 0x18051f5c0
cmp r8, rcx
jge 0x18051f632
lea rax, [r8 + rsi]
sub rcx, r8
lea rdx, [r12 + rax*4]
movss xmm0, dword [rdx]
add rdx, 4
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm0
subsd xmm2, xmm0
sub rcx, 1
jne 0x18051f619
comisd xmm2, xmm4
jb 0x18051fae6
mov rax, qword [rsp + 8]
xorps xmm0, xmm0
mov rcx, qword [rsp]
movaps xmm1, xmm5
sqrtsd xmm0, xmm2
add rax, r10
inc rbx
mov qword [rsp + 8], rax
add rsi, r11
add rdi, rbp
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [r9], xmm0
add r9, r14
mov qword [rsp + 0x10], r9
cmp rbx, rcx
jl 0x18051f480
mov r9, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
je 0x18051fad3
movsxd r14, dword [rsp + 0xb8]
test rcx, rcx
jle 0x18051f866
mov r10, qword [rsp]
lea rcx, [r9*4]
xor edi, edi
mov qword [rsp + 0x18], rcx
xor r15d, r15d
mov qword [rsp + 8], r12
lea r8, [r13*4]
mov qword [rsp + 0x10], rdx
mov r11, r12
mov rax, rdx
nop dword [rax]
xor esi, esi
test r14, r14
jle 0x18051f843
lea r14, [rcx + 4]
mov rbp, rax
imul r14, rdi
nop word [rax + rax]
movss xmm2, dword [rbp]
xor r9d, r9d
cvtps2pd xmm2, xmm2
cmp rdi, 4
jl 0x18051f7ae
lea rax, [rsi + r13*2]
mov rcx, r11
lea rdx, [rdx + rax*4]
mov r10, r13
lea rax, [rdi - 4]
shl r10, 4
mov r11, r13
shr rax, 2
mov rbx, r13
neg r11
neg rbx
inc rax
lea r9, [rax*4]
nop word [rax + rax]
movss xmm0, dword [rdx + rbx*8]
mulss xmm0, dword [rcx]
cvtps2pd xmm1, xmm0
movss xmm0, dword [rdx + r11*4]
mulss xmm0, dword [rcx + 4]
subsd xmm2, xmm1
cvtps2pd xmm1, xmm0
movss xmm0, dword [rcx + 8]
mulss xmm0, dword [rdx]
subsd xmm2, xmm1
cvtps2pd xmm1, xmm0
movss xmm0, dword [r8 + rdx]
add rdx, r10
mulss xmm0, dword [rcx + 0xc]
subsd xmm2, xmm1
add rcx, 0x10
cvtps2pd xmm1, xmm0
subsd xmm2, xmm1
sub rax, 1
jne 0x18051f750
mov r11, qword [rsp + 8]
mov rdx, qword [rsp + 0xa8]
cmp r9, rdi
jge 0x18051f7ef
lea rax, [r9 + r15]
lea rcx, [r12 + rax*4]
mov rax, r9
imul rax, r13
add rax, rsi
lea rdx, [rdx + rax*4]
mov rax, rdi
sub rax, r9
movss xmm0, dword [rdx]
add rdx, r8
mulss xmm0, dword [rcx]
add rcx, 4
xorps xmm0, xmm3
cvtss2sd xmm0, xmm0
addsd xmm2, xmm0
sub rax, 1
jne 0x18051f7cf
movss xmm0, dword [r14 + r12]
inc rsi
movsxd rax, dword [rsp + 0xb8]
mov rdx, qword [rsp + 0xa8]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [rbp], xmm0
add rbp, 4
cmp rsi, rax
jl 0x18051f700
movsxd r14, dword [rsp + 0xb8]
mov rax, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov r9, qword [rsp + 0x98]
mov r10, qword [rsp]
add rax, r8
add r11, rcx
inc rdi
mov qword [rsp + 0x10], rax
add r15, r9
mov qword [rsp + 8], r11
cmp rdi, r10
jl 0x18051f6e0
mov rcx, qword [rsp]
mov eax, dword [rsp + 0xa0]
sub eax, 1
movsxd r10, eax
js 0x18051fad3
mov rbx, r13
mov rax, r10
neg rbx
shl rbx, 2
imul rax, r13
mov qword [rsp + 0x28], rbx
lea rax, [rdx + rax*4]
mov qword [rsp + 0x10], rax
nop dword [rax + rax]
xor r11d, r11d
test r14, r14
jle 0x18051fab5
lea rsi, [r9 + 1]
mov rdi, rax
imul rsi, r10
lea rbp, [rcx - 1]
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x30], rbp
nop word [rax + rax]
movss xmm2, dword [rdi]
mov rcx, rbp
cvtps2pd xmm2, xmm2
cmp rbp, r10
jle 0x18051fa7b
mov rax, rbp
sub rax, r10
cmp rax, 4
jl 0x18051fa2b
lea rcx, [rbp - 2]
mov r15, r9
mov rax, rcx
mov r14, r13
imul rax, r13
mov rsi, rbp
neg r14
add rax, r11
shl r14, 4
sub rsi, rcx
neg r15
shl r15, 4
lea rdx, [rdx + rax*4]
mov rax, rcx
imul rax, r9
mov rcx, rbp
add rax, r10
lea r8, [r12 + rax*4]
lea r12, [rsi - 1]
mov rax, r12
imul rax, r9
imul r12, r13
mov qword [rsp + 0x18], rax
lea r13, [rsi - 3]
mov rax, r13
imul r13, qword [rsp + 0xb0]
imul rax, r9
mov qword [rsp + 8], rax
mov rax, rsi
imul rsi, qword [rsp + 0xb0]
imul rax, r9
mov r9, qword [rsp]
mov rbx, qword [rsp + 8]
sub r9, r10
sub r9, 5
shr r9, 2
inc r9
mov qword [rsp + 0x20], rax
mov rbp, qword [rsp + 0x20]
lea rax, [r9*4]
sub rcx, rax
mov rax, qword [rsp + 0x18]
nop
movss xmm0, dword [rdx + rsi*4]
mulss xmm0, dword [r8 + rbp*4]
cvtps2pd xmm1, xmm0
movss xmm0, dword [r8 + rax*4]
mulss xmm0, dword [rdx + r12*4]
subsd xmm2, xmm1
cvtps2pd xmm1, xmm0
movss xmm0, dword [r8]
mulss xmm0, dword [rdx]
subsd xmm2, xmm1
cvtps2pd xmm1, xmm0
movss xmm0, dword [rdx + r13*4]
add rdx, r14
mulss xmm0, dword [r8 + rbx*4]
subsd xmm2, xmm1
add r8, r15
cvtps2pd xmm1, xmm0
subsd xmm2, xmm1
sub r9, 1
jne 0x18051f9a0
mov rbx, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov r12, qword [rsp + 0x90]
mov r13, qword [rsp + 0xb0]
movsxd r14, dword [rsp + 0xb8]
mov r9, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa8]
cmp rcx, r10
jle 0x18051fa7b
mov rax, rcx
neg r9
imul rax, r13
shl r9, 2
add rax, r11
lea rdx, [rdx + rax*4]
mov rax, rcx
imul rax, qword [rsp + 0x98]
add rax, r10
sub rcx, r10
lea r8, [r12 + rax*4]
movss xmm0, dword [r8]
add r8, r9
mulss xmm0, dword [rdx]
add rdx, rbx
xorps xmm0, xmm3
cvtss2sd xmm0, xmm0
addsd xmm2, xmm0
sub rcx, 1
jne 0x18051fa5b
movss xmm0, dword [r12 + rsi*4]
inc r11
mov r9, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa8]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [rdi], xmm0
add rdi, 4
cmp r11, r14
jl 0x18051f8d0
mov rax, qword [rsp + 0x10]
mov r9, qword [rsp + 0x98]
add rax, rbx
sub r10, 1
mov rcx, qword [rsp]
mov qword [rsp + 0x10], rax
jns 0x18051f8a0
mov al, 1
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
xor al, al
jmp 0x18051fad5