Function at 0x18014fee0
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 0x18014ff2f
xor al, al
jmp 0x1801505c0
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.1800c3540
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.1800e4aa0
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 rax, qword [0x18023d768]
xor edx, edx
mov rcx, qword [rbx]
call rax
vmovss dword [rbx + 0x44], xmm0
test byte [rbx + 0xe4], 2
je 0x18014ffa2
vmulss xmm0, xmm0, dword [0x1802189c4]
vmovss dword [rbx + 0x44], xmm0
lea rdx, [rbx + 0x4c]
lea rcx, [rsp + 0x20]
call fcn.1800d1fc0
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 [0x18021894c]
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 [0x180218d6c]
vmulss xmm4, xmm6, xmm10
vxorps xmm1, xmm9, xmmword [0x180219380]
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.1800e4aa0
vmovss xmm2, dword [rax + 4]
vmovss xmm0, dword [rax]
vmovss xmm6, dword [rbx + 0x44]
vmulss xmm1, xmm0, xmm0
vmulss xmm0, xmm2, xmm2
vaddss xmm0, xmm1, xmm0
vxorps xmm2, xmm2, xmm2
vucomiss xmm2, xmm0
ja 0x1801500b6
vsqrtss xmm0, xmm0, xmm0
jmp 0x1801500bb
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
vmulss xmm1, xmm6, dword [0x18021898c]
vcomiss xmm1, xmm0
jb 0x1801500cf
mov dword [rbx + 0x3c], edi
mov dword [rbx + 0x34], edi
vmovss dword [rbx + 0x48], xmm6
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 r14d, dword [0x18024256c]
mov rax, qword gs:[0x58]
mov rsi, qword [rax + r14*8]
mov r15d, 4
mov eax, dword [r15 + rsi]
cmp dword [0x180244410], eax
jle 0x1801501cd
lea rcx, [0x180244410]
call fcn.1801905cc
cmp dword [0x180244410], 0xffffffff
jne 0x1801501cd
mov rcx, qword [0x180243e98]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1801501b9
nop dword [rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180150171
mov rdx, rdi
test rcx, rcx
je 0x1801501b0
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 0x180150190
cmp r8d, 0x7a1c884e
je 0x180150220
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180150160
mov eax, edi
mov dword [0x180244420], eax
lea rcx, [0x180244410]
call fcn.180190560
mov rcx, qword [0x180243ec0]
mov rax, qword [rcx]
mov r8, qword [rax + 0x20]
movsxd rax, dword [0x180244420]
mov edx, dword [rax + rbp]
mov dword [rsp + 0xb0], edx
lea rdx, [rsp + 0xb0]
call r8
test rax, rax
je 0x180150232
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 0x180150301
lea r8, str.m_hConstraintEntity
mov rdx, qword [r10 + 0x18]
call fcn.180190160
jmp 0x1801501bb
mov rbp, qword [rbx]
mov eax, dword [r15 + rsi]
cmp dword [0x180244454], eax
jle 0x1801502e1
lea rcx, [0x180244454]
call fcn.1801905cc
cmp dword [0x180244454], 0xffffffff
jne 0x1801502e1
mov rcx, qword [0x180243e98]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1801502cd
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180150284
mov rdx, rdi
test rcx, rcx
je 0x1801502c4
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x1801502a0
cmp r8d, 0x7a1c884e
je 0x18015054b
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180150273
mov eax, edi
mov dword [0x180244440], eax
lea rcx, [0x180244454]
call fcn.180190560
movsxd rcx, dword [0x180244440]
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 rbp, qword [rax + r14*8]
mov eax, dword [r15 + rbp]
cmp dword [0x18024443c], eax
jle 0x1801503d1
lea rcx, [0x18024443c]
call fcn.1801905cc
cmp dword [0x18024443c], 0xffffffff
jne 0x1801503d1
mov rcx, qword [0x180243e98]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x1801503bd
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180150371
mov rdx, rdi
test rcx, rcx
je 0x1801503b4
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 0x180150390
cmp r8d, 0x7a1c884e
je 0x180150560
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180150360
mov eax, edi
mov dword [0x1802443cc], eax
lea rcx, [0x18024443c]
call fcn.180190560
movsxd rax, dword [0x1802443cc]
mov ecx, dword [rax + rsi]
mov dword [rbx + 0x98], ecx
mov rsi, qword [rbx]
mov eax, dword [r15 + rbp]
cmp dword [0x180244374], eax
jle 0x180150491
lea rcx, [0x180244374]
call fcn.1801905cc
cmp dword [0x180244374], 0xffffffff
jne 0x180150491
mov rcx, qword [0x180243e98]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18015047d
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180150433
mov rdx, rdi
test rcx, rcx
je 0x180150474
nop word [rax + rax]
movsx eax, byte [r9 + rdx]
xor eax, r8d
imul r8d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x180150450
cmp r8d, 0x7a1c884e
je 0x180150575
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x180150422
mov eax, edi
mov dword [0x1802443b4], eax
lea rcx, [0x180244374]
call fcn.180190560
movsxd rax, dword [0x1802443b4]
mov ecx, dword [rax + rsi]
mov dword [rbx + 0x9c], ecx
mov rsi, qword [rbx]
mov eax, dword [r15 + rbp]
cmp dword [0x180244444], eax
jle 0x1801505ae
lea rcx, [0x180244444]
call fcn.1801905cc
cmp dword [0x180244444], 0xffffffff
jne 0x1801505ae
mov rcx, qword [0x180243e98]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18015059c
nop word [rax + rax]
mov r9, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r8d, 0x811c9dc5
inc rcx
cmp byte [r9 + rcx], 0
jne 0x180150501
mov rdx, rdi
test rcx, rcx
je 0x180150540
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 0x180150520
cmp r8d, 0x7a1c884e
je 0x18015058a
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x1801504f0
jmp 0x18015059c
lea r8, str.m_vecConstraintCenter
mov rdx, qword [r10 + 0x18]
call fcn.180190160
jmp 0x1801502cf
lea r8, str.m_flConstraintRadius
mov rdx, qword [r10 + 0x18]
call fcn.180190160
jmp 0x1801503bf
lea r8, str.m_flConstraintWidth
mov rdx, qword [r10 + 0x18]
call fcn.180190160
jmp 0x18015047f
lea r8, str.m_flConstraintSpeedFactor
mov rdx, qword [r10 + 0x18]
call fcn.180190160
mov edi, eax
mov dword [0x180244348], edi
lea rcx, [0x180244444]
call fcn.180190560
movsxd rax, dword [0x180244348]
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