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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x104
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1007d930
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
test byte [esi + 8], 1
mov eax, dword [0x1012d320]
jne 0x1007202c
mov ecx, dword [eax + 0x13c]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [ebp - 0x84]
vmovss xmm1, dword [ebp - 0x84]
mov eax, dword [0x1012d364]
vmovss xmm0, dword [eax + 0x20]
vfnmadd213ss xmm0, xmm1, dword [esi + 0x24]
jmp 0x100720f8
mov ecx, dword [eax + 0x134]
mov eax, dword [ecx]
call dword [eax + 0x34]
test eax, eax
jne 0x100720c4
mov eax, dword [ebp + 8]
vmovss xmm2, dword [eax + 0x1c]
vmovss xmm4, dword [eax + 0x20]
vmovss xmm3, dword [eax + 0x24]
mov ecx, dword [eax]
mov eax, dword [0x10132bc0]
test al, 1
je 0x100726b7
mov edi, dword [0x10132bbc]
mov eax, dword [edi + 4]
vmovss xmm0, dword [eax + ecx]
vmulss xmm0, xmm0, dword [0x100f5634]
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
jbe 0x100720c4
vmulss xmm1, xmm4, xmm4
vfmadd213ss xmm2, xmm2, xmm1
vfmadd213ss xmm3, xmm3, xmm2
vcvtss2sd xmm1, xmm3, xmm3
vsqrtsd xmm1, xmm1, xmm1
vcvtsd2ss xmm1, xmm1, xmm1
vucomiss xmm1, xmm0
jbe 0x100720c4
vdivss xmm0, xmm0, xmm1
mov eax, dword [ebp + 8]
vmovsd xmm1, qword [eax + 0x1c]
vbroadcastss xmm2, xmm0
vmulps xmm1, xmm2, xmm1
vmovlps qword [eax + 0x1c], xmm1
vmulss xmm0, xmm0, dword [eax + 0x24]
vmovss dword [eax + 0x24], xmm0
mov esi, dword [ebp + 8]
cmp byte [esi + 0xc], 0
je 0x100726a1
mov eax, dword [0x1012d320]
mov ecx, dword [eax + 0x138]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x10], 0xffffffff
call eax
fstp dword [ebp - 0x88]
vmovss xmm0, dword [ebp - 0x88]
vmovss dword [ebp - 0x20], xmm0
vmovss dword [esi + 0x24], xmm0
vxorps xmm1, xmm1, xmm1
vmovups ymmword [ebp - 0xdc], ymm1
vmovups ymmword [ebp - 0xf0], ymm1
vmovups ymmword [ebp - 0x110], ymm1
mov dword [ebp - 0x8c], 0x100fe104
mov eax, dword [0x1012d364]
vbroadcastss xmm2, dword [eax + 0x20]
vmovsd xmm6, qword [esi + 0x10]
vmovsd xmm0, qword [esi + 0x28]
vmovups xmmword [ebp - 0xac], xmm0
vmovsd xmm1, qword [esi + 0x34]
vmovups xmmword [ebp - 0x80], xmm1
vaddps xmm5, xmm0, xmm1
vbroadcastss xmm7, dword [0x100f54dc]
vmulps xmm4, xmm5, xmm7
vaddps xmm3, xmm6, xmm4
vmovss xmm0, dword [esi + 0x18]
vmovss xmm1, dword [esi + 0x30]
vmovss dword [ebp - 0x9c], xmm1
vmovss xmm4, dword [esi + 0x3c]
vmovlps qword [ebp - 0x70], xmm3
vaddss xmm3, xmm1, xmm4
vmulss xmm1, xmm3, dword [0x100f54dc]
vaddss xmm1, xmm0, xmm1
vmovss dword [ebp - 0x68], xmm1
vmulss xmm1, xmm2, dword [ebp - 0x20]
vaddss xmm1, xmm1, xmm0
vsubss xmm0, xmm1, xmm0
mov dword [ebp - 0x64], 0
vmovsd xmm1, qword [esi + 0x1c]
vmulps xmm1, xmm2, xmm1
vaddps xmm1, xmm1, xmm6
vsubps xmm1, xmm1, xmm6
vmovlps qword [ebp - 0x60], xmm1
vmovss dword [ebp - 0x58], xmm0
mov dword [ebp - 0x54], 0
vbroadcastss xmm6, dword [0x100f56c8]
vmovups xmmword [ebp - 0xbc], xmm6
vmulps xmm5, xmm5, xmm6
vmovlps qword [ebp - 0x50], xmm5
vmulss xmm5, xmm3, dword [0x100f56c8]
vmovss dword [ebp - 0x48], xmm5
vsubss xmm5, xmm4, dword [ebp - 0x9c]
mov dword [ebp - 0x44], 0
vmovups xmm2, xmmword [ebp - 0x80]
vsubps xmm3, xmm2, xmmword [ebp - 0xac]
vmovups xmmword [ebp - 0x80], xmm7
vmulps xmm3, xmm3, xmm7
vmovlps qword [ebp - 0x40], xmm3
vmulps xmm4, xmm3, xmm3
vmovshdup xmm4, xmm4
vfmadd231ss xmm4, xmm3, xmm3
vmulss xmm2, xmm5, dword [0x100f54dc]
vmovss dword [ebp - 0x38], xmm2
vfmadd231ss xmm4, xmm2, xmm2
vcvtss2sd xmm2, xmm4, xmm4
vmovsd xmm3, qword [0x100fe0d0]
vucomisd xmm3, xmm2
vmulps xmm2, xmm1, xmm1
vmovshdup xmm2, xmm2
vfmadd231ss xmm2, xmm1, xmm1
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
seta byte [ebp - 0x2c]
vfmadd231ss xmm2, xmm0, xmm0
vxorps xmm0, xmm0, xmm0
vucomiss xmm2, xmm0
mov ecx, dword [0x1012d384]
lea eax, [esi + 0x10]
mov dword [ebp - 0x24], eax
setp al
setne dl
or dl, al
mov byte [ebp - 0x2b], dl
mov eax, dword [ecx]
lea edx, [ebp - 0x110]
lea edi, [ebp - 0x8c]
lea ebx, [ebp - 0x70]
push edx
push edi
push 1
push ebx
vzeroupper
call dword [eax + 0x14]
vmovss xmm0, dword [ebp - 0xe4]
vucomiss xmm0, dword [0x100f54d0]
jne 0x100722c2
jnp 0x10072504
mov bl, 1
jmp 0x10072463
mov eax, dword [0x1012d364]
vmovss xmm2, dword [0x100f54d0]
vsubss xmm0, xmm2, xmm0
vmulss xmm7, xmm0, dword [eax + 0x20]
vmovsd xmm6, qword [ebp - 0x104]
mov esi, dword [ebp + 8]
vmovsd xmm0, qword [esi + 0x28]
vmovups xmmword [ebp - 0xac], xmm0
vmovsd xmm2, qword [esi + 0x34]
vmovups xmmword [ebp - 0x9c], xmm2
vaddps xmm3, xmm0, xmm2
vmulps xmm0, xmm3, xmmword [ebp - 0x80]
vaddps xmm0, xmm6, xmm0
vmovss xmm2, dword [esi + 0x30]
vmovss dword [ebp - 0x28], xmm2
vmovss xmm4, dword [esi + 0x3c]
vmovlps qword [ebp - 0x70], xmm0
vmovss xmm0, dword [ebp - 0xfc]
vaddss xmm2, xmm2, xmm4
vmulss xmm5, xmm2, dword [0x100f54dc]
vaddss xmm5, xmm0, xmm5
vmovss dword [ebp - 0x68], xmm5
vmulss xmm5, xmm7, dword [ebp - 0x20]
vaddss xmm5, xmm5, xmm0
vsubss xmm0, xmm5, xmm0
vbroadcastss xmm5, xmm7
vmulps xmm1, xmm5, xmm1
vaddps xmm1, xmm1, xmm6
vsubps xmm1, xmm1, xmm6
mov dword [ebp - 0x64], 0
vmovlps qword [ebp - 0x60], xmm1
vmovss dword [ebp - 0x58], xmm0
mov dword [ebp - 0x54], 0
vmulps xmm3, xmm3, xmmword [ebp - 0xbc]
vmovlps qword [ebp - 0x50], xmm3
vmulss xmm2, xmm2, dword [0x100f56c8]
vmovss dword [ebp - 0x48], xmm2
vsubss xmm2, xmm4, dword [ebp - 0x28]
mov dword [ebp - 0x44], 0
vmovups xmm3, xmmword [ebp - 0x9c]
vsubps xmm3, xmm3, xmmword [ebp - 0xac]
vmulps xmm3, xmm3, xmmword [ebp - 0x80]
vmovlps qword [ebp - 0x40], xmm3
vmulps xmm4, xmm3, xmm3
vmovshdup xmm4, xmm4
vfmadd231ss xmm4, xmm3, xmm3
vmulss xmm2, xmm2, dword [0x100f54dc]
vmovss dword [ebp - 0x38], xmm2
vfmadd231ss xmm4, xmm2, xmm2
vcvtss2sd xmm2, xmm4, xmm4
vmovsd xmm3, qword [0x100fe0d0]
vucomisd xmm3, xmm2
vmulps xmm2, xmm1, xmm1
vmovshdup xmm2, xmm2
vfmadd231ss xmm2, xmm1, xmm1
vfmadd231ss xmm2, xmm0, xmm0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
seta byte [ebp - 0x2c]
vxorps xmm0, xmm0, xmm0
vucomiss xmm2, xmm0
mov ecx, dword [0x1012d384]
setp al
setne dl
or dl, al
mov byte [ebp - 0x2b], dl
mov eax, dword [ecx]
lea edx, [ebp - 0x110]
push edx
push edi
push 1
lea edx, [ebp - 0x70]
push edx
call dword [eax + 0x14]
vmovss xmm0, dword [ebp - 0xe4]
vucomiss xmm0, dword [0x100f54d0]
setp al
setne cl
or cl, al
test cl, bl
mov ebx, 0
je 0x10072504
vmovss xmm3, dword [ebp - 0xf0]
vmovss xmm2, dword [esi + 0x24]
vmovsd xmm4, qword [ebp - 0xf8]
vmovsd xmm1, qword [esi + 0x1c]
vmulps xmm5, xmm4, xmm1
vmovshdup xmm5, xmm5
vfmadd231ss xmm5, xmm4, xmm1
vfmadd231ss xmm5, xmm3, xmm2
vmulss xmm6, xmm3, xmm5
vbroadcastss xmm5, xmm5
vmulps xmm5, xmm4, xmm5
vsubps xmm1, xmm1, xmm5
vmovlps qword [esi + 0x1c], xmm1
vsubss xmm2, xmm2, xmm6
vmovss dword [esi + 0x24], xmm2
vmulps xmm5, xmm4, xmm1
vmovshdup xmm5, xmm5
vfmadd231ss xmm5, xmm4, xmm1
vmovss dword [ebp - 0x20], xmm2
vfmadd231ss xmm5, xmm3, xmm2
vxorps xmm2, xmm2, xmm2
vucomiss xmm2, xmm5
jbe 0x100722d0
vmulss xmm3, xmm3, xmm5
vbroadcastss xmm5, xmm5
vmulps xmm4, xmm4, xmm5
vsubps xmm1, xmm1, xmm4
mov eax, dword [ebp + 8]
vmovlps qword [eax + 0x1c], xmm1
vmovss xmm2, dword [ebp - 0x20]
vsubss xmm2, xmm2, xmm3
vmovss dword [ebp - 0x20], xmm2
vmovss dword [eax + 0x24], xmm2
jmp 0x100722d0
lea ecx, [ebp - 0x104]
mov eax, dword [ecx + 8]
mov edx, dword [ebp - 0x24]
mov dword [edx + 8], eax
vmovsd xmm0, qword [ecx]
vmovsd qword [edx], xmm0
vmovss xmm0, dword [esi + 0x30]
vmovss xmm1, dword [esi + 0x3c]
vmovss dword [ebp - 0x20], xmm1
vsubss xmm2, xmm1, xmm0
vmovaps xmm1, xmm0
vmovss xmm3, dword [0x100f54dc]
vmulss xmm2, xmm2, xmm3
vmovsd xmm4, qword [esi + 0x28]
vmovsd xmm5, qword [esi + 0x34]
vsubps xmm3, xmm5, xmm4
vmovups xmm7, xmmword [ebp - 0x80]
vmulps xmm3, xmm3, xmm7
vmulps xmm6, xmm3, xmm3
vmovshdup xmm6, xmm6
vfmadd231ss xmm6, xmm3, xmm3
vfmadd231ss xmm6, xmm2, xmm2
vcvtss2sd xmm6, xmm6, xmm6
vmovsd xmm0, qword [0x100fe0d0]
vucomisd xmm0, xmm6
vaddss xmm0, xmm1, dword [ebp - 0x20]
vaddps xmm1, xmm4, xmm5
vmulps xmm4, xmm1, xmm7
vmovsd xmm5, qword [ebp - 0x104]
vaddps xmm4, xmm5, xmm4
vmovlps qword [ebp - 0x70], xmm4
vmulss xmm4, xmm0, dword [0x100f54dc]
vmovss xmm6, dword [ebp - 0xfc]
vaddss xmm4, xmm4, xmm6
vmovss dword [ebp - 0x68], xmm4
vaddss xmm4, xmm6, dword [0x100f5608]
vsubss xmm4, xmm4, xmm6
vmulps xmm1, xmm1, xmmword [ebp - 0xbc]
mov dword [ebp - 0x64], 0
vsubps xmm5, xmm5, xmm5
vmovlps qword [ebp - 0x60], xmm5
vmovss dword [ebp - 0x58], xmm4
mov dword [ebp - 0x54], 0
vmovlps qword [ebp - 0x50], xmm1
vmulss xmm0, xmm0, dword [0x100f56c8]
vmovss dword [ebp - 0x48], xmm0
mov dword [ebp - 0x44], 0
vmovlps qword [ebp - 0x40], xmm3
vmovss dword [ebp - 0x38], xmm2
vmulps xmm0, xmm5, xmm5
vmovshdup xmm0, xmm0
vfmadd231ss xmm0, xmm5, xmm5
vfmadd231ss xmm0, xmm4, xmm4
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
seta byte [ebp - 0x2c]
vucomiss xmm0, dword [0x100f54d4]
mov ecx, dword [0x1012d384]
setp al
setne dl
or dl, al
mov byte [ebp - 0x2b], dl
mov eax, dword [ecx]
lea edx, [ebp - 0x110]
push edx
push edi
push 1
lea edx, [ebp - 0x70]
push edx
call dword [eax + 0x14]
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 0xfffffffe
mov dword [esi + 8], ecx
vmovss xmm0, dword [ebp - 0xe4]
vucomiss xmm0, dword [0x100f54d0]
jne 0x10072670
jnp 0x1007268b
vmovss xmm0, dword [ebp - 0xf0]
vucomiss xmm0, dword [0x100f5710]
jbe 0x1007268b
or eax, 1
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x104
pop esi
pop edi
pop ebx
pop ebp
ret 4
vmovss xmm0, dword [esi + 0x24]
vmovss dword [ebp - 0x20], xmm0
mov dword [ebp - 0x10], 0xffffffff
jmp 0x10072102
mov dword [ebp - 0x24], ecx
vmovss dword [ebp - 0xbc], xmm4
vmovss dword [ebp - 0x28], xmm3
vmovss dword [ebp - 0x9c], xmm2
or eax, 1
mov dword [0x10132bc0], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x20], ecx
push str.CBasePlayer__m_flMaxspeed
call fcn.100083b0
mov esi, dword [ebp - 0x100]
cmp dword [ebp - 0xfc], 0x10
jb 0x10072714
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x1007272e
mov eax, esi
and eax, 3
mov dword [ebp - 0x80], eax
cmp esi, 4
jae 0x10072735
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1007277e
mov ecx, 0x811c9dc5
jmp 0x1007279b
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x20]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x10072744
cmp dword [ebp - 0x80], 0
je 0x1007279b
add edx, dword [ebp - 0x20]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x80], edi
jne 0x10072789
mov edx, dword [ebp - 0xac]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10072818
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x100727d9
cmp dword [edi + 0x1c], 0x10
jb 0x100727c5
mov eax, dword [edi + 8]
jmp 0x100727c8
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100727e7
cmp edi, ebx
je 0x10072818
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x100727ba
jmp 0x100727d9
add edi, 0x20
lea ecx, [ebp - 0x110]
call fcn.100029d0
mov dword [0x10132bbc], edi
vmovss xmm2, dword [ebp - 0x9c]
vmovss xmm3, dword [ebp - 0x28]
vmovss xmm4, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x24]
jmp 0x10072066
mov dword [ebp - 0x10], 1
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
nop dword [eax]
push ebp
sub esp, 0x10
add ebp, 0xc
lea ecx, [ebp - 0x110]
call fcn.100029d0
add esp, 0x10
pop ebp
ret