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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x3c
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x10092650
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x10132c78]
test al, 1
je 0x10091490
mov edi, dword [0x10132c74]
mov ebx, dword [ebp + 0x18]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [edi + 4]
movzx ecx, byte [eax + esi]
lea eax, [ebx - 6]
cmp eax, 2
jb 0x100913bd
cmp ebx, 3
je 0x100913cb
cmp ebx, 1
jne 0x100913db
vmovss xmm0, dword [ebp + 0x14]
vmulss xmm0, xmm0, dword [edx]
vmovss dword [edx], xmm0
test cl, cl
je 0x100913db
vmulss xmm0, xmm0, dword [0x100f54dc]
jmp 0x100913d7
vmovss xmm0, dword [edx]
vmulss xmm0, xmm0, dword [0x100f563c]
jmp 0x100913d7
vmovss xmm0, dword [edx]
vmulss xmm0, xmm0, dword [0x100f55cc]
vmovss dword [edx], xmm0
mov eax, dword [0x10132c80]
test al, 1
je 0x100914e3
mov edi, dword [0x10132c7c]
cmp ebx, 5
ja 0x1009147d
mov eax, dword [edi + 4]
mov edi, dword [eax + esi]
test edi, edi
je 0x1009147d
cmp ebx, 1
jne 0x10091428
mov dword [ebp - 0x24], edi
mov eax, dword [0x10132c88]
test al, 1
je 0x100916fe
mov edi, dword [0x10132c84]
mov eax, dword [edi + 4]
cmp byte [eax + esi], 0
mov edi, dword [ebp - 0x24]
je 0x1009147d
vmovss xmm0, dword [ebp + 0x10]
xor eax, eax
vmulss xmm0, xmm0, dword [0x100f54dc]
test cl, cl
sete cl
je 0x10091446
vmulss xmm0, xmm0, dword [0x100f5630]
vmovss xmm1, dword [edx]
vmulss xmm0, xmm0, xmm1
vsubss xmm2, xmm1, xmm0
mov al, cl
vmulss xmm2, xmm2, dword [eax*4 + 0x100fe388]
vcvtsi2ss xmm3, xmm3, edi
vdivss xmm4, xmm3, dword [eax*4 + 0x100fe390]
vsubss xmm1, xmm1, xmm4
vcmpltss xmm2, xmm3, xmm2
vblendvps xmm0, xmm0, xmm1, xmm2
vmovss dword [edx], xmm0
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
or eax, 1
mov dword [0x10132c78], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x24], ecx
push str.CCSPlayer__m_bHasHeavyArmor
call fcn.100083b0
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x30], 0x10
jb 0x100914c6
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x24], eax
test esi, esi
je 0x1009153d
mov eax, esi
and eax, 3
mov dword [ebp - 0x28], eax
cmp esi, 4
jae 0x1009154e
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10091597
mov byte [ebp - 0x1d], cl
or eax, 1
mov dword [0x10132c80], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], 2
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x24], ecx
push str.CCSPlayer__m_ArmorValue
call fcn.100083b0
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x30], 0x10
jb 0x1009151c
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x24], eax
test esi, esi
je 0x10091544
mov eax, esi
and eax, 3
mov dword [ebp - 0x28], eax
cmp esi, 4
jae 0x1009161b
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10091664
mov ecx, 0x811c9dc5
jmp 0x100915b4
mov ecx, 0x811c9dc5
jmp 0x10091681
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x24]
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 0x1009155d
cmp dword [ebp - 0x28], 0
je 0x100915b4
add edx, dword [ebp - 0x24]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x28], edi
jne 0x100915a2
mov edx, dword [ebp - 0x2c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10091827
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x100915f3
cmp dword [edi + 0x1c], 0x10
jb 0x100915df
mov eax, dword [edi + 8]
jmp 0x100915e2
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x24]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10091605
cmp edi, ebx
je 0x10091827
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x100915d4
jmp 0x100915f3
add edi, 0x20
lea ecx, [ebp - 0x44]
call fcn.100029d0
mov dword [0x10132c74], edi
jmp 0x10091380
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x24]
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 0x1009162a
cmp dword [ebp - 0x28], 0
je 0x10091681
add edx, dword [ebp - 0x24]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x28], edi
jne 0x1009166f
mov edx, dword [ebp - 0x2c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1009183b
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x100916c0
cmp dword [edi + 0x1c], 0x10
jb 0x100916ac
mov eax, dword [edi + 8]
jmp 0x100916af
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x24]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100916d2
cmp edi, ebx
je 0x1009183b
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x100916a1
jmp 0x100916c0
add edi, 0x20
lea ecx, [ebp - 0x44]
call fcn.100029d0
mov dword [0x10132c7c], edi
mov edx, dword [ebp + 0xc]
movzx ecx, byte [ebp - 0x1d]
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0x18]
cmp ebx, 5
jbe 0x100913f7
jmp 0x1009147d
mov byte [ebp - 0x1d], cl
or eax, 1
mov dword [0x10132c88], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x10], 4
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x28], ecx
push str.CCSPlayer__m_bHasHelmet
call fcn.100083b0
mov esi, dword [ebp - 0x34]
cmp dword [ebp - 0x30], 0x10
jb 0x10091737
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x28], eax
test esi, esi
je 0x10091751
mov eax, esi
and eax, 3
mov dword [ebp - 0x2c], eax
cmp esi, 4
jae 0x10091758
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100917a1
mov ecx, 0x811c9dc5
jmp 0x100917be
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x28]
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 0x10091767
cmp dword [ebp - 0x2c], 0
je 0x100917be
add edx, dword [ebp - 0x28]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x2c], edi
jne 0x100917ac
mov edx, dword [ebp - 0x48]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1009184f
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x100917f9
cmp dword [edi + 0x1c], 0x10
jb 0x100917e5
mov eax, dword [edi + 8]
jmp 0x100917e8
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x28]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10091807
cmp edi, ebx
je 0x1009184f
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x100917da
jmp 0x100917f9
add edi, 0x20
lea ecx, [ebp - 0x44]
call fcn.100029d0
mov dword [0x10132c84], edi
mov edx, dword [ebp + 0xc]
movzx ecx, byte [ebp - 0x1d]
mov esi, dword [ebp + 8]
jmp 0x1009141c
mov dword [ebp - 0x10], 1
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 3
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [ebp - 0x10], 5
push 0x1011ed9d
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
nop word cs:[eax + eax]
push ebp
sub esp, 0xc
add ebp, 0xc
lea ecx, [ebp - 0x44]
call fcn.100029d0
add esp, 0xc
pop ebp
ret