Function at 0x180045940
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x20]
sub rsp, 0x120
movaps xmmword [rsp + 0x110], xmm6
mov rax, qword [0x1800b53b0]
xor rax, rsp
mov qword [rbp], rax
mov r13, r8
mov r14, rdx
mov qword [rsp + 0x78], rcx
xor r15d, r15d
lea rbx, str.Entity
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], 6
movabs rdi, 0xcbf29ce484222325
mov r9, rdi
mov ecx, r15d
movabs rsi, 0x100000001b3
nop
movzx eax, byte [rcx + rbx]
xor r9, rax
imul r9, rsi
inc rcx
cmp rcx, 6
jb 0x1800459b0
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x60]
call fcn.18005a660
cmp qword [rax + 8], r15
jne 0x1800459ee
lea rdx, [0x1800a2afe]
lea rcx, [rsp + 0x30]
call fcn.180041460
jmp 0x180045a99
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], r15b
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], 6
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x50]
call fcn.180059e80
mov rcx, qword [rax]
mov r9, qword [rcx + 0x20]
mov rsi, qword [rcx + 0x28]
mov rax, qword [rbp - 0x28]
cmp rsi, rax
ja 0x180045a61
lea rbx, [rbp - 0x40]
cmp rax, 0x10
cmovae rbx, qword [rbp - 0x40]
mov qword [rbp - 0x30], rsi
mov r8, rsi
mov rdx, r9
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + rsi], 0
lea rbx, str.Entity
jmp 0x180045a6d
mov rdx, rsi
lea rcx, [rbp - 0x40]
call fcn.180042290
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rsp + 0x30], xmm0
movups xmm1, xmmword [rbp - 0x30]
movups xmmword [rsp + 0x40], xmm1
mov qword [rbp - 0x30], r15
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], 0
movabs rsi, 0x100000001b3
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 0x10
cmovb rcx, rax
call fcn.1800595f0
mov r15, rax
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x180045af2
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180045aed
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180045f11
call fcn.180076098
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], 6
mov r9, rdi
xor ecx, ecx
nop word [rax + rax]
movzx eax, byte [rcx + rbx]
xor r9, rax
imul r9, rsi
inc rcx
cmp rcx, 6
jb 0x180045b10
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x50]
call fcn.18005a660
cmp qword [rax + 8], 0
jne 0x180045b50
lea rdx, [0x1800a2afe]
lea rcx, [rbp - 0x80]
call fcn.180041460
xor ebx, ebx
jmp 0x180045bed
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], 0
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], 0
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], 6
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x60]
call fcn.180059e80
mov rcx, qword [rax]
mov r9, qword [rcx + 0x20]
mov rsi, qword [rcx + 0x28]
mov rax, qword [rbp - 0x28]
cmp rsi, rax
ja 0x180045bc0
lea rbx, [rbp - 0x40]
cmp rax, 0x10
cmovae rbx, qword [rbp - 0x40]
mov qword [rbp - 0x30], rsi
mov r8, rsi
mov rdx, r9
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + rsi], 0
jmp 0x180045bcc
mov rdx, rsi
lea rcx, [rbp - 0x40]
call fcn.180042290
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rbp - 0x30]
movups xmmword [rbp - 0x70], xmm1
xor ebx, ebx
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], bl
mov r9d, 2
lea r8, [0x1800a40e4]
lea rcx, [rbp - 0x80]
call fcn.180046840
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x30], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x40], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov r8d, 3
lea rdx, [0x1800a40e0]
lea rcx, [rsp + 0x30]
call fcn.1800418d0
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x10], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x10], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x180045cb8
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180045cb3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180045cb3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180076098
movdqa xmm0, xmmword [0x1800a5c00]
movdqu xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x30], 0
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x180045d09
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180045d04
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180045d04
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180076098
movdqa xmm0, xmmword [0x1800a5c00]
movdqu xmmword [rbp - 0x70], xmm0
mov byte [rbp - 0x80], 0
lea rsi, [rbp - 0x20]
cmp qword [rbp - 8], 0x10
cmovae rsi, qword [rbp - 0x20]
lea r12, str.getDistanceSqToEntity
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x28], 0x15
mov rcx, rbx
movabs rdx, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rcx + r12]
xor rdi, rax
imul rdi, rdx
inc rcx
cmp rcx, 0x15
jb 0x180045d50
mov r9, rdi
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x50]
call fcn.18005a660
cmp qword [rax + 8], 0
jne 0x180045d93
lea rdx, [0x1800a2afe]
lea rcx, [rsp + 0x50]
call fcn.180041460
jmp 0x180045e2f
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], 0
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x28], 0x15
lea r8, [rsp + 0x20]
lea rdx, [rbp - 0x60]
call fcn.180059e80
mov rcx, qword [rax]
mov r9, qword [rcx + 0x20]
mov rdi, qword [rcx + 0x28]
mov rax, qword [rbp - 0x28]
cmp rdi, rax
ja 0x180045e01
lea rbx, [rbp - 0x40]
cmp rax, 0x10
cmovae rbx, qword [rbp - 0x40]
mov qword [rbp - 0x30], rdi
mov r8, rdi
mov rdx, r9
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + rdi], 0
xor ebx, ebx
jmp 0x180045e0d
mov rdx, rdi
lea rcx, [rbp - 0x40]
call fcn.180042290
movups xmm0, xmmword [rbp - 0x40]
movups xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [rbp - 0x30]
movups xmmword [rsp + 0x60], xmm1
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], 0
mov r8, qword [rsp + 0x50]
lea rcx, [rsp + 0x50]
mov rax, qword [r14]
mov r10, qword [rax + 0x108]
cmp qword [rsp + 0x68], 0x10
cmovb r8, rcx
mov r9, rsi
mov rdx, r15
mov rcx, r14
call r10
mov rbx, rax
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
mov r12, qword [rsp + 0x78]
jb 0x180045ea1
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180045e9c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180045e9c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180076098
movdqa xmm0, xmmword [0x1800a5c00]
movdqu xmmword [rsp + 0x60], xmm0
mov byte [rsp + 0x50], 0
mov r9, r13
mov r8, rbx
mov rdx, r12
mov rcx, r14
call fcn.180043e50
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x180045ed7
xorps xmm6, xmm6
sqrtsd xmm6, xmm0
jmp 0x180045edf
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm6, xmm0
mov rdx, qword [rbp - 8]
cmp rdx, 0x10
jb 0x180045f1d
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180045f18
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180045f18
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180076098
movaps xmm0, xmm6
mov rcx, qword [rbp]
xor rcx, rsp
call fcn.1800759c0
mov rbx, qword [rsp + 0x178]
movaps xmm6, xmmword [rsp + 0x110]
add rsp, 0x120
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret