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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov qword [rax + 8], rcx
push rdi
push r14
push r15
sub rsp, 0xc0
vmovaps xmmword [rax - 0x28], xmm6
vmovaps xmmword [rax - 0x38], xmm7
vmovaps xmmword [rax - 0x48], xmm8
vmovaps xmmword [rax - 0x58], xmm9
vmovaps xmmword [rax - 0x68], xmm10
vmovaps xmmword [rax - 0x78], xmm11
mov rbx, rdx
mov rcx, qword [rdx]
test rcx, rcx
jne 0x180165daf
xor al, al
jmp 0x180166618
add rcx, 0x10
mov rax, qword [rcx]
call qword [rax + 0x48]
mov dword [rsp + 0xe0], eax
lea r8, [rsp + 0xe0]
lea rdx, [rsp + 0x50]
lea rcx, [0x1802628f8]
call fcn.180167a40
mov rsi, qword [rax]
and byte [rbx + 8], 0xfc
mov rcx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov ecx, dword [rax]
mov dword [rbx + 0xc], ecx
mov rcx, qword [rbx]
call fcn.1800caf30
mov ecx, dword [rax]
mov dword [rbx + 0xa4], ecx
mov ecx, dword [rax + 4]
mov dword [rbx + 0xa8], ecx
mov eax, dword [rax + 8]
mov dword [rbx + 0xac], eax
mov rcx, qword [rbx]
call fcn.1800ebca0
mov ecx, dword [rax]
mov dword [rbx + 0x4c], ecx
mov ecx, dword [rax + 4]
mov dword [rbx + 0x50], ecx
mov eax, dword [rax + 8]
mov dword [rbx + 0x54], eax
mov rdi, qword [rbx]
mov rax, qword [0x1802623d8]
xor edx, edx
mov rcx, rdi
call rax
vmovaps xmm6, xmm0
mov edx, 0x20
mov rcx, rdi
call fcn.1800c61c0
test al, al
jne 0x180165e60
mov edx, 0x48
mov rcx, rdi
call fcn.1800c61c0
test al, al
je 0x180165e68
vmulss xmm6, xmm6, dword [0x18023bc40]
vmovss dword [rbx + 0x44], xmm6
test byte [rbx + 0xe4], 2
je 0x180165e83
vdivss xmm0, xmm6, dword [0x18023bca8]
vmovss dword [rbx + 0x44], xmm0
xor edi, edi
cmp qword [rsi + 0x38], rdi
je 0x180165f97
mov rcx, qword [rsi + 0x28]
dec rcx
and rcx, qword [rsi + 0x30]
mov rax, qword [rsi + 0x20]
mov rdx, qword [rax + rcx*8]
lea rsi, [rbx + 0x14]
mov eax, dword [rdx + 0xc]
mov dword [rsi], eax
lea r14, [rsi + 4]
mov eax, dword [rdx + 0x10]
mov dword [r14], eax
lea r15, [rsi + 8]
mov eax, dword [rdx + 0x14]
mov dword [r15], eax
vmovss xmm3, dword [rdx]
vmovss xmm1, dword [0x18023c290]
vandps xmm0, xmm3, xmm1
vmovss xmm2, dword [0x18023ba5c]
vcomiss xmm2, xmm0
jbe 0x180165eff
vmovss xmm0, dword [rdx + 4]
vandps xmm0, xmm0, xmm1
vcomiss xmm2, xmm0
jbe 0x180165eff
vmovss xmm0, dword [rdx + 8]
vandps xmm0, xmm0, xmm1
vcomiss xmm2, xmm0
ja 0x1801660d0
vmovss xmm0, dword [rdx + 0x10]
vxorps xmm1, xmm0, xmmword [0x18023c2b0]
vxorps xmm2, xmm2, xmm2
vmovss dword [rsp + 0x20], xmm2
vmovss dword [rsp + 0x24], xmm1
vmovss dword [rsp + 0x28], xmm2
vmovss dword [rsp + 0x30], xmm2
vmovss dword [rsp + 0x34], xmm2
vmovss dword [rsp + 0x38], xmm2
vmovss dword [rsp + 0x40], xmm3
vmovss xmm0, dword [rdx + 4]
vmovss dword [rsp + 0x44], xmm0
vmovss xmm1, dword [rdx + 8]
vmovss dword [rsp + 0x48], xmm1
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.180151400
vmovss xmm0, dword [rsp + 0x50]
vmovss dword [rbx + 0x34], xmm0
vmovss xmm1, dword [rsp + 0x54]
vxorps xmm2, xmm1, xmmword [0x18023c2b0]
vmovss dword [rbx + 0x3c], xmm2
vmovss xmm0, dword [rsp + 0x58]
vmovss dword [rbx + 0x40], xmm0
jmp 0x1801660d0
lea rdx, [rbx + 0x4c]
lea rcx, [rsp + 0x50]
call fcn.180161f70
vmovss xmm6, dword [rax + 4]
lea rsi, [rbx + 0x14]
mov dword [rsi], edi
lea r14, [rsi + 4]
vmovss dword [r14], xmm6
lea r15, [rsi + 8]
mov dword [r15], edi
vxorps xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
vmovaps xmm10, xmm0
vxorps xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
vmovaps xmm7, xmm0
vmulss xmm6, xmm6, dword [0x18023baf0]
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
vmovaps xmm9, xmm0
vmovaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
vmovaps xmm8, xmm0
vmulss xmm11, xmm0, xmm7
vmulss xmm7, xmm9, xmm7
vxorps xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sinf
vmovaps xmm6, xmm0
vxorps xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cosf
vmulss xmm3, xmm0, dword [0x18023bf40]
vmulss xmm4, xmm6, xmm10
vxorps xmm1, xmm9, xmmword [0x18023c2b0]
vmulss xmm2, xmm1, xmm3
vmulss xmm0, xmm8, xmm4
vsubss xmm5, xmm2, xmm0
vmulss xmm3, xmm8, xmm3
vmulss xmm1, xmm9, xmm4
vsubss xmm0, xmm3, xmm1
vdivss xmm2, xmm0, xmm5
vmovss xmm4, dword [rbx + 0x4c]
vmulss xmm1, xmm2, xmm4
vmovss xmm0, dword [rbx + 0x50]
vsubss xmm3, xmm0, xmm1
vmulss xmm1, xmm2, xmm11
vsubss xmm2, xmm7, xmm1
vdivss xmm0, xmm3, xmm2
vmovss dword [rbx + 0x34], xmm0
vmulss xmm0, xmm0, xmm11
vsubss xmm1, xmm4, xmm0
vdivss xmm2, xmm1, xmm5
vmovss dword [rbx + 0x3c], xmm2
mov rcx, qword [rbx]
call fcn.1800ebca0
vmovss xmm1, dword [rax + 4]
vmovss xmm0, dword [rax]
vmulss xmm2, xmm0, xmm0
vmulss xmm1, xmm1, xmm1
vaddss xmm3, xmm2, xmm1
vxorps xmm0, xmm0, xmm0
vucomiss xmm0, xmm3
ja 0x1801660ae
vsqrtss xmm0, xmm3, xmm3
jmp 0x1801660b7
vmovaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
vmovss xmm1, dword [rbx + 0x44]
vmulss xmm1, xmm1, dword [0x18023bb48]
vcomiss xmm1, xmm0
jb 0x1801660d0
mov dword [rbx + 0x3c], edi
mov dword [rbx + 0x34], edi
mov eax, dword [rbx + 0x44]
mov dword [rbx + 0x48], eax
vmovss xmm2, dword [rsi]
vmovss dword [rbx + 0x64], xmm2
vmovss xmm1, dword [r14]
vmovss dword [rbx + 0x68], xmm1
vmovss xmm0, dword [r15]
vmovss dword [rbx + 0x6c], xmm0
vmovss dword [rbx + 0x58], xmm2
vmovss dword [rbx + 0x5c], xmm1
vmovss dword [rbx + 0x60], xmm0
mov rbp, qword [rbx]
mov r15d, 4
mov r14d, dword [0x180265dfc]
mov rax, qword gs:[0x58]
mov rsi, qword [rax + r14*8]
mov eax, dword [rsi + r15]
cmp dword [0x180267cdc], eax
jle 0x1801661cd
lea rcx, [0x180267cdc]
call fcn.1801b3c6c
cmp dword [0x180267cdc], 0xffffffff
jne 0x1801661cd
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1801661b9
nop dword [rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180166171
mov rdx, rdi
test rcx, rcx
je 0x1801661b0
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [rdx + r9]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180166190
cmp r8d, 0x7a1c884e
je 0x180166220
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180166160
mov eax, edi
mov dword [0x180267cec], eax
lea rcx, [0x180267cdc]
call fcn.1801b3c00
movsxd rdx, dword [0x180267cec]
mov rcx, qword [0x180267710]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov eax, dword [rdx + rbp]
mov dword [rsp + 0xe0], eax
lea rdx, [rsp + 0xe0]
call r8
test rax, rax
je 0x180166232
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x48]
mov ecx, dword [rax]
mov dword [rbx + 0x8c], ecx
mov ecx, dword [rax + 4]
mov dword [rbx + 0x90], ecx
vmovss xmm0, dword [rax + 8]
jmp 0x180166301
lea r8, str.m_hConstraintEntity
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
jmp 0x1801661bb
mov rbp, qword [rbx]
mov eax, dword [rsi + r15]
cmp dword [0x180267d24], eax
jle 0x1801662e1
lea rcx, [0x180267d24]
call fcn.1801b3c6c
cmp dword [0x180267d24], 0xffffffff
jne 0x1801662e1
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1801662cd
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180166284
mov rdx, rdi
test rcx, rcx
je 0x1801662c4
nop word [rax + rax]
movsx eax, byte [rdx + r9]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1801662a0
cmp r8d, 0x7a1c884e
je 0x18016654b
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180166273
mov eax, edi
mov dword [0x180267d14], eax
lea rcx, [0x180267d24]
call fcn.1801b3c00
movsxd rcx, dword [0x180267d14]
mov eax, dword [rcx + rbp]
mov dword [rbx + 0x8c], eax
mov eax, dword [rcx + rbp + 4]
mov dword [rbx + 0x90], eax
vmovss xmm0, dword [rcx + rbp + 8]
vmovss dword [rbx + 0x94], xmm0
mov rsi, qword [rbx]
mov rax, qword gs:[0x58]
mov r14, qword [rax + r14*8]
mov eax, dword [r14 + r15]
cmp dword [0x180267d0c], eax
jle 0x1801663d1
lea rcx, [0x180267d0c]
call fcn.1801b3c6c
cmp dword [0x180267d0c], 0xffffffff
jne 0x1801663d1
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1801663bd
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180166371
mov rdx, rdi
test rcx, rcx
je 0x1801663b4
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [rdx + r9]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180166390
cmp r8d, 0x7a1c884e
je 0x180166560
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180166360
mov eax, edi
mov dword [0x180267c90], eax
lea rcx, [0x180267d0c]
call fcn.1801b3c00
movsxd rax, dword [0x180267c90]
mov ecx, dword [rax + rsi]
mov dword [rbx + 0x98], ecx
mov rsi, qword [rbx]
mov eax, dword [r14 + r15]
cmp dword [0x180267c2c], eax
jle 0x180166491
lea rcx, [0x180267c2c]
call fcn.1801b3c6c
cmp dword [0x180267c2c], 0xffffffff
jne 0x180166491
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18016647d
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180166433
mov rdx, rdi
test rcx, rcx
je 0x180166474
nop word [rax + rax]
movsx eax, byte [rdx + r9]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180166450
cmp r8d, 0x7a1c884e
je 0x180166575
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180166422
mov eax, edi
mov dword [0x180267c74], eax
lea rcx, [0x180267c2c]
call fcn.1801b3c00
movsxd rax, dword [0x180267c74]
mov ecx, dword [rax + rsi]
mov dword [rbx + 0x9c], ecx
mov rsi, qword [rbx]
mov eax, dword [r14 + r15]
cmp dword [0x180267d10], eax
jle 0x1801665ae
lea rcx, [0x180267d10]
call fcn.1801b3c6c
cmp dword [0x180267d10], 0xffffffff
jne 0x1801665ae
mov rcx, qword [0x1802676e0]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18016659c
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180166501
mov rdx, rdi
test rcx, rcx
je 0x180166540
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [rdx + r9]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180166520
cmp r8d, 0x7a1c884e
je 0x18016658a
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1801664f0
jmp 0x18016659c
lea r8, str.m_vecConstraintCenter
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
jmp 0x1801662cf
lea r8, str.m_flConstraintRadius
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
jmp 0x1801663bf
lea r8, str.m_flConstraintWidth
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
jmp 0x18016647f
lea r8, str.m_flConstraintSpeedFactor
mov rdx, qword [r10 + 0x18]
call fcn.1801b3800
mov edi, eax
mov dword [0x180267bfc], edi
lea rcx, [0x180267d10]
call fcn.1801b3c00
movsxd rax, dword [0x180267bfc]
mov ecx, dword [rax + rsi]
mov dword [rbx + 0xa0], ecx
mov rdx, qword [rbx]
call fcn.180167220
vmovss dword [rbx + 0x1a8], xmm0
mov rcx, qword [rbx]
call fcn.1800ca0b0
vmovss xmm0, dword [rax]
vmovss dword [rbx + 0x1a4], xmm0
vaddss xmm0, xmm0, dword [rbx + 0x1a8]
vmovss dword [rbx + 0x1ac], xmm0
mov eax, dword [rbx + 0xa4]
mov dword [rbx + 0x1b4], eax
mov eax, dword [rbx + 0xa8]
mov dword [rbx + 0x1b8], eax
mov eax, dword [rbx + 0xac]
mov dword [rbx + 0x1bc], eax
mov al, 1
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
vmovaps xmm6, xmmword [r11 - 0x10]
vmovaps xmm7, xmmword [r11 - 0x20]
vmovaps xmm8, xmmword [r11 - 0x30]
vmovaps xmm9, xmmword [r11 - 0x40]
vmovaps xmm10, xmmword [r11 - 0x50]
vmovaps xmm11, xmmword [r11 - 0x60]
mov rsp, r11
pop r15
pop r14
pop rdi
ret