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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x7c
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x1008ffc0
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], eax
mov eax, dword [0x1012d35c]
mov edx, dword [eax]
mov eax, dword [0x10132be8]
test al, 1
je 0x1008f148
mov edi, dword [0x10132be4]
mov eax, dword [edi + 4]
mov ebx, dword [edx + eax - 0x14]
test ebx, ebx
je 0x1008f135
mov eax, dword [0x1012d35c]
mov eax, dword [eax]
mov dword [ebp - 0x38], eax
mov eax, dword [0x10132be0]
test al, 1
je 0x1008f1ba
mov edi, dword [0x10132bdc]
mov eax, dword [ebp + 8]
mov esi, dword [eax + 4]
mov edx, 0x1b4e81b5
mov eax, esi
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 4
add edx, eax
imul eax, edx, 0x96
sub esi, eax
cmp esi, 0x96
jae 0x1008f1ae
cmp byte [ecx + 0x14], 0
je 0x1008f135
mov eax, dword [edi + 4]
mov edx, dword [ebp - 0x38]
movzx eax, byte [eax + edx]
cmp al, 8
je 0x1008f135
cmp al, 9
je 0x1008f135
mov eax, dword [0x1012d338]
imul edx, esi, 0x858
cmp byte [eax + edx + 0x1b60], 9
je 0x1008f135
cmp byte [eax + edx + 0x1c08], 9
je 0x1008f135
mov eax, dword [ebp + 8]
test byte [eax + 0x30], 0x20
jne 0x1008f135
mov eax, dword [0x1012d35c]
mov edx, dword [eax]
mov eax, dword [0x1012d48c]
test al, 1
je 0x1008f3e0
mov edi, dword [0x1012d488]
mov eax, dword [edi + 4]
test byte [eax + edx], 0x40
jne 0x1008f135
mov eax, dword [0x1012d320]
test byte [eax + 0x1c4], 0x10
jne 0x1008f135
cmp byte [eax + 0x1b0], 0
jne 0x1008f135
mov eax, dword [0x1012d334]
mov eax, dword [eax + 0x1804]
mov edx, dword [ebp + 8]
cmp dword [edx + 4], eax
je 0x1008f135
mov edx, dword [ebp + 0x10]
vmovss xmm4, dword [ebp + 0xc]
test edx, edx
je 0x1008f11c
mov edi, ebx
mov dword [ebp - 0x70], ecx
mov esi, dword [0x1012d370]
mov ecx, dword [esi + 0x4d2c]
cmp eax, ecx
jle 0x1008efaa
mov esi, dword [esi + 0x4d30]
add esi, ecx
inc esi
cmp eax, esi
setle bl
jmp 0x1008efac
xor ebx, ebx
mov esi, dword [ebp + 0x14]
xor eax, eax
cmp edx, 1
sete al
vmovss xmm0, dword [eax*4 + 0x100fe180]
test bl, bl
je 0x1008efca
vmovaps xmm3, xmm0
jmp 0x1008f014
vmovss xmm1, dword [edi + 0x11c]
vmovss xmm2, dword [0x100f577c]
vfmadd213ss xmm2, xmm1, dword [0x100fe138]
mov eax, dword [0x1012d364]
vmulss xmm1, xmm2, dword [eax + 0x20]
mov eax, dword [ebp - 0x70]
vmovss xmm2, dword [eax + 0x24]
vaddss xmm3, xmm1, xmm2
vucomiss xmm0, xmm3
ja 0x1008f014
vbroadcastss xmm3, dword [0x100f54d8]
vxorps xmm1, xmm1, xmm3
vsubss xmm1, xmm1, xmm2
vmaxss xmm3, xmm1, xmm0
test esi, esi
jle 0x1008f11c
mov edx, 0x1b4e81b5
mov eax, ecx
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 4
add edx, eax
imul eax, edx, 0x96
sub ecx, eax
cmp ecx, 0x96
jae 0x1008f1ae
mov eax, dword [0x1012d338]
vaddss xmm0, xmm3, dword [0x100fe188]
vbroadcastss xmm1, dword [0x100f550c]
vmovups xmmword [ebp - 0x70], xmm1
vandps xmm0, xmm0, xmm1
vmovups xmmword [ebp - 0x38], xmm0
imul ecx, ecx, 0x858
vmovss xmm0, dword [eax + ecx + 0x14b4]
vmovss dword [ebp - 0x20], xmm0
vmovss xmm0, dword [eax + ecx + 0x14bc]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
mov esi, dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
vmovups xmmword [ebp - 0x48], xmm3
call esi
fstp dword [ebp - 0x7c]
vmovss xmm0, dword [ebp - 0x7c]
vmovss dword [ebp - 0x24], xmm0
vmovss xmm0, dword [ebp - 0x20]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call esi
fstp dword [ebp - 0x78]
vmovss xmm0, dword [ebp - 0x24]
vsubss xmm0, xmm0, dword [ebp - 0x78]
vmovss dword [esp], xmm0
mov dword [esp + 4], 0x43b40000
call esi
fstp dword [ebp - 0x74]
vmovss xmm0, dword [ebp - 0x74]
vandps xmm0, xmm0, xmmword [ebp - 0x70]
vbroadcastss xmm1, dword [0x100f54d8]
vcmpltss xmm0, xmm0, dword [ebp - 0x38]
vmovups xmm3, xmmword [ebp - 0x48]
vandps xmm1, xmm3, xmm1
vbroadcastss xmm2, dword [0x100fcf9c]
vorps xmm1, xmm1, xmm2
vblendvps xmm0, xmm3, xmm1, xmm0
vmovss xmm4, dword [ebp + 0xc]
vsubss xmm4, xmm4, xmm0
vmovss dword [esp], xmm4
mov dword [esp + 4], 0x43b40000
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_remainderf]
mov eax, dword [ebp + 8]
fstp dword [eax + 0x10]
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x70], ecx
or eax, 1
mov dword [0x10132be8], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], 0
mov dword [esp], str.CCSPlayer__m_bIsScoped
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x38], ecx
call fcn.100083b0
sub esp, 4
mov esi, dword [ebp - 0x50]
cmp dword [ebp - 0x4c], 0x10
jb 0x1008f189
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x38], eax
test esi, esi
je 0x1008f220
mov eax, esi
and eax, 3
mov dword [ebp - 0x48], eax
cmp esi, 4
jae 0x1008f227
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1008f270
mov dword [ebp - 0x10], 0xffffffff
call fcn.1007cfb0
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x70], ecx
or eax, 1
mov dword [0x10132be0], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 2
mov dword [esp], str.m_MoveType
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x48], ecx
call fcn.100083b0
sub esp, 4
mov esi, dword [ebp - 0x50]
cmp dword [ebp - 0x4c], 0x10
jb 0x1008f1fb
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x48], eax
test esi, esi
je 0x1008f300
mov eax, esi
and eax, 3
mov dword [ebp - 0x20], eax
cmp esi, 4
jae 0x1008f307
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1008f350
mov ecx, 0x811c9dc5
jmp 0x1008f28d
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x38]
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 0x1008f236
cmp dword [ebp - 0x48], 0
je 0x1008f28d
add edx, dword [ebp - 0x38]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x48], edi
jne 0x1008f27b
mov edx, dword [ebp - 0x20]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1008f51d
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x1008f2d2
cmp dword [edi + 0x1c], 0x10
jb 0x1008f2b8
mov eax, dword [edi + 8]
jmp 0x1008f2bb
lea eax, [edi + 8]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008f2e4
cmp edi, ebx
je 0x1008f51d
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x1008f2ad
jmp 0x1008f2d2
add edi, 0x20
lea ecx, [ebp - 0x60]
call fcn.100029d0
mov dword [0x10132be4], edi
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x24]
jmp 0x1008ee67
mov ecx, 0x811c9dc5
jmp 0x1008f36d
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x48]
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 0x1008f316
cmp dword [ebp - 0x20], 0
je 0x1008f36d
add edx, dword [ebp - 0x48]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x20], edi
jne 0x1008f35b
mov edx, dword [ebp - 0x28]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1008f530
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x1008f3b2
cmp dword [edi + 0x1c], 0x10
jb 0x1008f398
mov eax, dword [edi + 8]
jmp 0x1008f39b
lea eax, [edi + 8]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x48]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008f3c4
cmp edi, ebx
je 0x1008f530
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x1008f38d
jmp 0x1008f3b2
add edi, 0x20
lea ecx, [ebp - 0x60]
call fcn.100029d0
mov dword [0x10132bdc], edi
mov ecx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x24]
jmp 0x1008ee93
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x70], ecx
or eax, 1
mov dword [0x1012d48c], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x10], 4
mov dword [esp], str.CBasePlayer__m_fFlags
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x38], ecx
call fcn.100083b0
sub esp, 4
mov esi, dword [ebp - 0x50]
cmp dword [ebp - 0x4c], 0x10
jb 0x1008f424
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x38], eax
test esi, esi
je 0x1008f43e
mov eax, esi
and eax, 3
mov dword [ebp - 0x48], eax
cmp esi, 4
jae 0x1008f445
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1008f48e
mov ecx, 0x811c9dc5
jmp 0x1008f4ab
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x38]
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 0x1008f454
cmp dword [ebp - 0x48], 0
je 0x1008f4ab
add edx, dword [ebp - 0x38]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x48], edi
jne 0x1008f499
mov edx, dword [ebp - 0x20]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1008f543
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x1008f4f0
cmp dword [edi + 0x1c], 0x10
jb 0x1008f4d6
mov eax, dword [edi + 8]
jmp 0x1008f4d9
lea eax, [edi + 8]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008f4fe
cmp edi, ebx
je 0x1008f543
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x1008f4cb
jmp 0x1008f4f0
add edi, 0x20
lea ecx, [ebp - 0x60]
call fcn.100029d0
mov dword [0x1012d488], edi
mov ecx, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
jmp 0x1008ef32
mov dword [ebp - 0x10], 1
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [ebp - 0x10], 3
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [ebp - 0x10], 5
mov dword [esp], 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
nop word cs:[eax + eax]
push ebp
sub esp, 0xc
add ebp, 0xc
lea ecx, [ebp - 0x60]
call fcn.100029d0
add esp, 0xc
pop ebp
ret