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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x38
mov eax, dword [0x1017f528]
xor eax, esp
mov dword [esp + 0x34], eax
mov eax, dword [0x1017f5cc]
cmp byte [eax + 0xd], 0
je 0x100bc131
mov eax, dword [0x1017f608]
mov ebx, dword [eax]
test ebx, ebx
je 0x100bc131
mov esi, ecx
mov eax, dword [0x1017f71c]
test al, 1
je 0x100bc144
mov edi, dword [0x1017f718]
mov eax, dword [edi + 4]
cmp dword [eax + ebx], 0
jle 0x100bc131
mov eax, dword [0x1017f724]
test al, 1
je 0x100bc1a5
mov edi, dword [0x1017f720]
mov eax, dword [edi + 4]
cmp byte [eax + ebx], 0
jne 0x100bc131
mov ecx, dword [0x1017f614]
mov eax, dword [ecx]
call dword [eax + 0x68]
test al, al
je 0x100bc131
mov eax, dword [0x1017f5c0]
vmovsd xmm2, qword [eax + 0x120]
vxorps xmm0, xmm0, xmm0
vucomiss xmm2, xmm0
jne 0x100bc022
jnp 0x100bc131
vmovshdup xmm1, xmm2
vucomiss xmm1, xmm0
jne 0x100bc032
jnp 0x100bc131
vmovss xmm1, dword [eax + 0x128]
vxorps xmm0, xmm0, xmm0
vmovss dword [esp], xmm1
vucomiss xmm1, xmm0
jne 0x100bc04f
jnp 0x100bc131
mov eax, dword [0x1017f5cc]
push dword [eax + 0x20]
vmovups xmmword [esp + 0x10], xmm2
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jne 0x100bc080
vmovss xmm0, dword [0x10184fc0]
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
jne 0x100bc080
jnp 0x100bc131
mov dword [0x10184fc0], 0x437f0000
mov edi, dword [0x1017f66c]
mov eax, dword [0x1017f608]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
call dword [eax + 0x28]
mov edx, dword [edi]
mov ecx, edi
push eax
call dword [edx + 0x10]
mov edi, eax
mov eax, dword [0x1017f610]
vmovss xmm0, dword [eax + 0x10]
vaddss xmm0, xmm0, dword [0x10129878]
vmovss dword [edi + 0x18], xmm0
mov dword [edi + 0x10], 0x42420000
vmovss xmm0, dword [0x1012973c]
vmulss xmm1, xmm0, dword [esi + 8]
vcvttss2si eax, xmm1
mov byte [edi + 0x14], al
vmulss xmm1, xmm0, dword [esi + 0xc]
vcvttss2si eax, xmm1
mov byte [edi + 0x15], al
vmulss xmm0, xmm0, dword [esi + 0x10]
vcvttss2si eax, xmm0
mov byte [edi + 0x16], al
mov byte [edi + 0x17], 6
mov eax, dword [0x1017f608]
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
add ecx, 8
call dword [eax + 0x28]
mov dword [edi + 0x24], eax
vmovups xmm0, xmmword [esp + 0xc]
vmovlps qword [edi + 4], xmm0
vmovss xmm0, dword [esp]
vmovss dword [edi + 0xc], xmm0
and dword [edi], 3
mov dword [edi + 0x3c], 0x43b40000
mov dword [edi + 0x28], 1
mov ecx, dword [esp + 0x34]
xor ecx, esp
call fcn.100d7fe0
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret
or eax, 1
mov dword [0x1017f71c], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 8], eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0xc], ecx
push str.CBasePlayer__m_iHealth
call fcn.10005ce0
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
cmp dword [esp + 0x30], 0x10
jb 0x100bc17d
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
cmp dword [esp], 0
je 0x100bc20a
mov eax, dword [esp]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 4], eax
cmp ecx, 3
jae 0x100bc211
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100bc25c
or eax, 1
mov dword [0x1017f724], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 8], eax
lea ecx, [esp + 0x1c]
mov dword [esp + 0xc], ecx
push str.CBasePlayer__m_lifeState
call fcn.10005ce0
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
cmp dword [esp + 0x30], 0x10
jb 0x100bc1de
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
cmp dword [esp], 0
je 0x100bc2e6
mov eax, dword [esp]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 4], eax
cmp ecx, 3
jae 0x100bc2ed
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100bc338
mov ecx, 0x811c9dc5
jmp 0x100bc27c
mov edi, dword [esp]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp + 0xc]
movzx ebp, byte [eax + edx]
xor ebp, ecx
imul ecx, ebp, 0x1000193
movzx ebp, byte [eax + edx + 1]
xor ebp, ecx
imul ecx, ebp, 0x1000193
movzx ebp, byte [eax + edx + 2]
xor ebp, ecx
imul ecx, ebp, 0x1000193
movzx ebp, byte [eax + edx + 3]
xor ebp, ecx
imul ecx, ebp, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100bc222
cmp dword [esp + 4], 0
je 0x100bc27c
add edx, dword [esp + 0xc]
xor edi, edi
movzx ebp, byte [edx + edi]
xor ebp, ecx
imul ecx, ebp, 0x1000193
inc edi
cmp dword [esp + 4], edi
jne 0x100bc269
mov edx, dword [esp + 8]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x100bc3ba
add ecx, ecx
mov ebp, dword [eax + ecx*4]
mov eax, dword [esp]
cmp eax, dword [edi + 0x18]
jne 0x100bc2c2
cmp dword [edi + 0x1c], 0x10
jb 0x100bc2ab
mov eax, dword [edi + 8]
jmp 0x100bc2ae
lea eax, [edi + 8]
push dword [esp]
push eax
push dword [esp + 0x14]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100bc2cf
cmp edi, ebp
je 0x100bc3ba
mov edi, dword [edi + 4]
jmp 0x100bc298
add edi, 0x20
lea ecx, [esp + 0x1c]
call fcn.100026e0
mov dword [0x1017f718], edi
jmp 0x100bbfc5
mov ecx, 0x811c9dc5
jmp 0x100bc358
mov edi, dword [esp]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp + 0xc]
movzx ebp, byte [eax + edx]
xor ebp, ecx
imul ecx, ebp, 0x1000193
movzx ebp, byte [eax + edx + 1]
xor ebp, ecx
imul ecx, ebp, 0x1000193
movzx ebp, byte [eax + edx + 2]
xor ebp, ecx
imul ecx, ebp, 0x1000193
movzx ebp, byte [eax + edx + 3]
xor ebp, ecx
imul ecx, ebp, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100bc2fe
cmp dword [esp + 4], 0
je 0x100bc358
add edx, dword [esp + 0xc]
xor edi, edi
movzx ebp, byte [edx + edi]
xor ebp, ecx
imul ecx, ebp, 0x1000193
inc edi
cmp dword [esp + 4], edi
jne 0x100bc345
mov edx, dword [esp + 8]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x100bc3ba
add ecx, ecx
mov ebp, dword [eax + ecx*4]
mov eax, dword [esp]
cmp eax, dword [edi + 0x18]
jne 0x100bc39a
cmp dword [edi + 0x1c], 0x10
jb 0x100bc383
mov eax, dword [edi + 8]
jmp 0x100bc386
lea eax, [edi + 8]
push dword [esp]
push eax
push dword [esp + 0x14]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100bc3a3
cmp edi, ebp
je 0x100bc3ba
mov edi, dword [edi + 4]
jmp 0x100bc370
add edi, 0x20
lea ecx, [esp + 0x1c]
call fcn.100026e0
mov dword [0x1017f720], edi
jmp 0x100bbfe5
push 0x1016ba76
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
int3