Function at 0x180147d00
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, 0x90
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 0x180147d4f
xor al, al
jmp 0x1801483e0
and byte [rdx + 8], 0xfc
mov rax, qword [rcx]
call qword [rax + 0x10]
mov ecx, dword [rax]
mov dword [rbx + 0xc], ecx
mov rcx, qword [rbx]
call fcn.1800bc2b0
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.1800dd8c0
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
xor edx, edx
mov rcx, qword [rbx]
call qword [0x18022e728]
vmovss dword [rbx + 0x44], xmm0
test byte [rbx + 0xe4], 2
je 0x180147dbf
vmulss xmm0, xmm0, dword [0x18020a2d4]
vmovss dword [rbx + 0x44], xmm0
lea rdx, [rbx + 0x4c]
lea rcx, [rsp + 0x20]
call fcn.1800cac00
vmovss xmm6, dword [rax + 4]
xor edi, edi
mov dword [rbx + 0x14], edi
vmovss dword [rbx + 0x18], xmm6
mov dword [rbx + 0x1c], 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 [0x18020a260]
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
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 xmm11, xmm8, xmm7
vmulss xmm5, xmm9, xmm7
vmulss xmm3, xmm0, dword [0x18020a658]
vmulss xmm4, xmm6, xmm10
vxorps xmm1, xmm9, xmmword [0x18020ab20]
vmulss xmm2, xmm1, xmm3
vmulss xmm0, xmm4, xmm8
vsubss xmm6, xmm2, xmm0
vmulss xmm3, xmm3, xmm8
vmulss xmm1, xmm4, xmm9
vsubss xmm0, xmm3, xmm1
vdivss xmm2, xmm0, xmm6
vmovss xmm4, dword [rbx + 0x4c]
vmulss xmm1, xmm2, xmm4
vmovss xmm0, dword [rbx + 0x50]
vsubss xmm3, xmm0, xmm1
vmulss xmm1, xmm11, xmm2
vsubss xmm2, xmm5, xmm1
vdivss xmm0, xmm3, xmm2
vmovss dword [rbx + 0x34], xmm0
vmulss xmm0, xmm11, xmm0
vsubss xmm1, xmm4, xmm0
vdivss xmm2, xmm1, xmm6
vmovss dword [rbx + 0x3c], xmm2
mov rcx, qword [rbx]
call fcn.1800dd8c0
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 0x180147ece
vsqrtss xmm0, xmm3, xmm3
jmp 0x180147ed7
vmovaps xmm0, xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
vmovss xmm2, dword [rbx + 0x44]
vmulss xmm1, xmm2, dword [0x18020a2a0]
vcomiss xmm1, xmm0
jb 0x180147ef0
mov dword [rbx + 0x3c], edi
mov dword [rbx + 0x34], edi
vmovss dword [rbx + 0x48], xmm2
vmovss xmm2, dword [rbx + 0x14]
vmovss dword [rbx + 0x64], xmm2
vmovss xmm1, dword [rbx + 0x18]
vmovss dword [rbx + 0x68], xmm1
vmovss xmm0, dword [rbx + 0x1c]
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 [0x18023328c]
mov rax, qword gs:[0x58]
mov rsi, qword [rax + r14*8]
mov eax, dword [rsi + r15]
cmp dword [0x1802350f8], eax
jle 0x180147fed
lea rcx, [0x1802350f8]
call fcn.180184cfc
cmp dword [0x1802350f8], 0xffffffff
jne 0x180147fed
mov rcx, qword [0x180234b88]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x180147fd9
nop dword [rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180147f91
mov rdx, rdi
test rcx, rcx
je 0x180147fd0
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180147fb0
cmp r8d, 0x7a1c884e
je 0x180148040
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180147f80
mov eax, edi
mov dword [0x180235108], eax
lea rcx, [0x1802350f8]
call fcn.180184c90
movsxd rdx, dword [0x180235108]
mov rcx, qword [0x180234bb0]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
mov eax, dword [rdx + rbp]
mov dword [rsp + 0xb0], eax
lea rdx, [rsp + 0xb0]
call r8
test rax, rax
je 0x180148052
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 0x180148121
lea r8, str.m_hConstraintEntity
mov rdx, qword [r10 + 0x18]
call fcn.180184890
jmp 0x180147fdb
mov rbp, qword [rbx]
mov eax, dword [rsi + r15]
cmp dword [0x18023513c], eax
jle 0x180148101
lea rcx, [0x18023513c]
call fcn.180184cfc
cmp dword [0x18023513c], 0xffffffff
jne 0x180148101
mov rcx, qword [0x180234b88]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1801480ed
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x1801480a4
mov rdx, rdi
test rcx, rcx
je 0x1801480e4
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1801480c0
cmp r8d, 0x7a1c884e
je 0x18014836b
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180148093
mov eax, edi
mov dword [0x180235128], eax
lea rcx, [0x18023513c]
call fcn.180184c90
movsxd rcx, dword [0x180235128]
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 [0x180235124], eax
jle 0x1801481f1
lea rcx, [0x180235124]
call fcn.180184cfc
cmp dword [0x180235124], 0xffffffff
jne 0x1801481f1
mov rcx, qword [0x180234b88]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1801481dd
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180148191
mov rdx, rdi
test rcx, rcx
je 0x1801481d4
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1801481b0
cmp r8d, 0x7a1c884e
je 0x180148380
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180148180
mov eax, edi
mov dword [0x1802350b4], eax
lea rcx, [0x180235124]
call fcn.180184c90
movsxd rax, dword [0x1802350b4]
mov ecx, dword [rax + rsi]
mov dword [rbx + 0x98], ecx
mov rsi, qword [rbx]
mov eax, dword [r14 + r15]
cmp dword [0x180235058], eax
jle 0x1801482b1
lea rcx, [0x180235058]
call fcn.180184cfc
cmp dword [0x180235058], 0xffffffff
jne 0x1801482b1
mov rcx, qword [0x180234b88]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18014829d
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180148253
mov rdx, rdi
test rcx, rcx
je 0x180148294
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180148270
cmp r8d, 0x7a1c884e
je 0x180148395
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180148242
mov eax, edi
mov dword [0x1802350a0], eax
lea rcx, [0x180235058]
call fcn.180184c90
movsxd rax, dword [0x1802350a0]
mov ecx, dword [rax + rsi]
mov dword [rbx + 0x9c], ecx
mov rsi, qword [rbx]
mov eax, dword [r14 + r15]
cmp dword [0x18023512c], eax
jle 0x1801483ce
lea rcx, [0x18023512c]
call fcn.180184cfc
cmp dword [0x18023512c], 0xffffffff
jne 0x1801483ce
mov rcx, qword [0x180234b88]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1801483bc
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180148321
mov rdx, rdi
test rcx, rcx
je 0x180148360
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180148340
cmp r8d, 0x7a1c884e
je 0x1801483aa
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180148310
jmp 0x1801483bc
lea r8, str.m_vecConstraintCenter
mov rdx, qword [r10 + 0x18]
call fcn.180184890
jmp 0x1801480ef
lea r8, str.m_flConstraintRadius
mov rdx, qword [r10 + 0x18]
call fcn.180184890
jmp 0x1801481df
lea r8, str.m_flConstraintWidth
mov rdx, qword [r10 + 0x18]
call fcn.180184890
jmp 0x18014829f
lea r8, str.m_flConstraintSpeedFactor
mov rdx, qword [r10 + 0x18]
call fcn.180184890
mov edi, eax
mov dword [0x18023502c], edi
lea rcx, [0x18023512c]
call fcn.180184c90
movsxd rax, dword [0x18023502c]
mov ecx, dword [rax + rsi]
mov dword [rbx + 0xa0], ecx
mov al, 1
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
vmovaps xmm6, xmmword [r11 - 0x10]
vmovaps xmm7, xmmword [rsp + 0x70]
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