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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov esi, ecx
mov eax, dword [0x1017f528]
xor eax, esp
mov dword [esp + 0x2c], eax
cmp dword [ecx + 0x4f7fc], 4
jne 0x1007d95b
mov ecx, dword [0x1017f624]
mov eax, dword [0x1017f61c]
mov edi, dword [eax + 0x4d28]
add edi, dword [eax + 0x4d24]
mov edx, dword [eax + 0x17c]
xor ebx, ebx
test edx, edx
setg bl
mov ebp, dword [ecx]
push edi
push dword [eax + 0x4d2c]
push ebx
push edx
call dword [ebp + 0xc]
mov eax, dword [0x1017f608]
mov ebx, dword [eax]
mov eax, dword [0x10184ecc]
test al, 1
je 0x1007da14
mov edi, dword [0x10184ec8]
mov eax, dword [edi + 4]
mov eax, dword [eax + ebx]
cmp eax, 0xffffffff
je 0x1007d95b
mov ecx, dword [0x1017f618]
mov edx, dword [ecx]
push eax
call dword [edx + 0x10]
test eax, eax
je 0x1007d95b
mov edi, eax
mov eax, dword [0x1017f704]
test al, 1
je 0x1007db57
mov ebx, dword [0x1017f700]
mov eax, dword [ebx + 4]
cmp word [eax + edi], 0x40
jne 0x1007d95b
mov eax, dword [0x10184eec]
test al, 1
je 0x1007dc98
mov ebx, dword [0x10184ee8]
mov eax, dword [ebx + 4]
vmovss xmm0, dword [eax + edi]
vucomiss xmm0, dword [0x101296d0]
jne 0x1007d95b
jp 0x1007d95b
vmovss xmm0, dword [esi + 0xe0]
mov ecx, dword [0x10184eec]
test cl, 1
je 0x1007dd07
add eax, edi
vmovss dword [eax], xmm0
mov eax, dword [0x1017f610]
vmovss xmm0, dword [eax + 0x10]
vmovss dword [esi], xmm0
vmovss xmm0, dword [eax + 0x14]
vmovss dword [esi + 4], xmm0
mov ecx, dword [0x1017f608]
mov edi, dword [ecx]
mov ecx, dword [0x1017f72c]
test cl, 1
je 0x1007d9ba
mov ebp, dword [0x1017f728]
mov ecx, dword [ebp + 4]
vcvtsi2ss xmm0, xmm1, dword [ecx + edi]
vmovss xmm1, dword [eax + 0x20]
vmulss xmm0, xmm1, xmm0
vmovss dword [eax + 0x10], xmm0
vmovss dword [eax + 0x14], xmm1
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.100d7fe0
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
or ecx, 1
mov dword [0x1017f72c], ecx
mov eax, dword [0x1017f5c4]
mov dword [esp + 8], eax
lea ecx, [esp + 0x14]
mov dword [esp], ecx
push str.CBasePlayer__m_nTickBase
call fcn.10005ce0
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x28], 0x10
jb 0x1007d9ef
mov eax, dword [esp + 0x14]
mov dword [esp], eax
test ebx, ebx
je 0x1007da79
lea ecx, [ebx - 1]
mov eax, ebx
and eax, 3
mov dword [esp + 4], eax
cmp ecx, 3
jae 0x1007da80
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1007dac9
or eax, 1
mov dword [0x10184ecc], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x14]
mov dword [esp + 4], ecx
push str.CBaseCombatCharacter__m_hActiveWeapon
call fcn.10005ce0
mov eax, dword [esp + 0x24]
mov dword [esp], eax
cmp dword [esp + 0x28], 0x10
jb 0x1007da4d
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
cmp dword [esp], 0
je 0x1007dbbc
mov eax, dword [esp]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 8], eax
cmp ecx, 3
jae 0x1007dbc3
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1007dc0e
mov ecx, 0x811c9dc5
jmp 0x1007dae8
mov esi, ebx
and esi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp]
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 esi, edx
jne 0x1007da8f
cmp dword [esp + 4], 0
je 0x1007dae8
add edx, dword [esp]
xor esi, esi
movzx ebp, byte [edx + esi]
xor ebp, ecx
imul ecx, ebp, 0x1000193
inc esi
cmp dword [esp + 4], esi
jne 0x1007dad5
mov edx, dword [esp + 8]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebp, dword [eax + ecx*8 + 4]
cmp ebp, dword [edx + 4]
je 0x1007e003
add ecx, ecx
mov esi, dword [eax + ecx*4]
cmp ebx, dword [ebp + 0x18]
jne 0x1007db29
cmp dword [ebp + 0x1c], 0x10
jb 0x1007db14
mov eax, dword [ebp + 8]
jmp 0x1007db17
lea eax, [ebp + 8]
push ebx
push eax
push dword [esp + 8]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1007db3b
cmp ebp, esi
je 0x1007e003
mov ebp, dword [ebp + 4]
cmp ebx, dword [ebp + 0x18]
je 0x1007db09
jmp 0x1007db29
add ebp, 0x20
lea ecx, [esp + 0x14]
call fcn.100026e0
mov dword [0x1017f728], ebp
mov eax, dword [0x1017f610]
jmp 0x1007d98c
or eax, 1
mov dword [0x1017f704], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x14]
mov dword [esp + 4], ecx
push str.CBaseAttributableItem__m_iItemDefinitionIndex
call fcn.10005ce0
mov eax, dword [esp + 0x24]
mov dword [esp], eax
cmp dword [esp + 0x28], 0x10
jb 0x1007db90
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
cmp dword [esp], 0
je 0x1007dcfd
mov eax, dword [esp]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 8], eax
cmp ecx, 3
jae 0x1007dd73
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1007ddbe
mov ecx, 0x811c9dc5
jmp 0x1007dc2e
mov edi, dword [esp]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp + 4]
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 0x1007dbd4
cmp dword [esp + 8], 0
je 0x1007dc2e
add edx, dword [esp + 4]
xor edi, edi
movzx ebp, byte [edx + edi]
xor ebp, ecx
imul ecx, ebp, 0x1000193
inc edi
cmp dword [esp + 8], edi
jne 0x1007dc1b
mov edx, dword [esp + 0xc]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1007e003
add ecx, ecx
mov ebp, dword [eax + ecx*4]
mov eax, dword [esp]
cmp eax, dword [edi + 0x18]
jne 0x1007dc74
cmp dword [edi + 0x1c], 0x10
jb 0x1007dc5d
mov eax, dword [edi + 8]
jmp 0x1007dc60
lea eax, [edi + 8]
push dword [esp]
push eax
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1007dc81
cmp edi, ebp
je 0x1007e003
mov edi, dword [edi + 4]
jmp 0x1007dc4a
add edi, 0x20
lea ecx, [esp + 0x14]
call fcn.100026e0
mov dword [0x10184ec8], edi
jmp 0x1007d8dd
or eax, 1
mov dword [0x10184eec], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x14]
mov dword [esp + 4], ecx
push str.CWeaponCSBase__m_flPostponeFireReadyTime
call fcn.10005ce0
mov eax, dword [esp + 0x24]
mov dword [esp], eax
cmp dword [esp + 0x28], 0x10
jb 0x1007dcd1
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
cmp dword [esp], 0
je 0x1007de48
mov eax, dword [esp]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 8], eax
cmp ecx, 3
jae 0x1007de4f
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1007de9a
mov ecx, 0x811c9dc5
jmp 0x1007ddde
vmovss dword [esp + 0x10], xmm0
or ecx, 1
mov dword [0x10184eec], ecx
mov eax, dword [0x1017f5c4]
mov dword [esp + 0xc], eax
lea ecx, [esp + 0x14]
mov dword [esp + 4], ecx
push str.CWeaponCSBase__m_flPostponeFireReadyTime
call fcn.10005ce0
mov eax, dword [esp + 0x24]
mov dword [esp], eax
cmp dword [esp + 0x28], 0x10
jb 0x1007dd47
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
cmp dword [esp], 0
je 0x1007df24
mov eax, dword [esp]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 8], eax
cmp ecx, 3
jae 0x1007df2b
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1007df76
mov ebx, dword [esp]
and ebx, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp + 4]
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 ebx, edx
jne 0x1007dd84
cmp dword [esp + 8], 0
je 0x1007ddde
add edx, dword [esp + 4]
xor ebx, ebx
movzx ebp, byte [edx + ebx]
xor ebp, ecx
imul ecx, ebp, 0x1000193
inc ebx
cmp dword [esp + 8], ebx
jne 0x1007ddcb
mov edx, dword [esp + 0xc]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1007e003
add ecx, ecx
mov ebp, dword [eax + ecx*4]
mov eax, dword [esp]
cmp eax, dword [ebx + 0x18]
jne 0x1007de24
cmp dword [ebx + 0x1c], 0x10
jb 0x1007de0d
mov eax, dword [ebx + 8]
jmp 0x1007de10
lea eax, [ebx + 8]
push dword [esp]
push eax
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1007de31
cmp ebx, ebp
je 0x1007e003
mov ebx, dword [ebx + 4]
jmp 0x1007ddfa
add ebx, 0x20
lea ecx, [esp + 0x14]
call fcn.100026e0
mov dword [0x1017f700], ebx
jmp 0x1007d90d
mov ecx, 0x811c9dc5
jmp 0x1007deba
mov ebx, dword [esp]
and ebx, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp + 4]
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 ebx, edx
jne 0x1007de60
cmp dword [esp + 8], 0
je 0x1007deba
add edx, dword [esp + 4]
xor ebx, ebx
movzx ebp, byte [edx + ebx]
xor ebp, ecx
imul ecx, ebp, 0x1000193
inc ebx
cmp dword [esp + 8], ebx
jne 0x1007dea7
mov edx, dword [esp + 0xc]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1007e003
add ecx, ecx
mov ebp, dword [eax + ecx*4]
mov eax, dword [esp]
cmp eax, dword [ebx + 0x18]
jne 0x1007df00
cmp dword [ebx + 0x1c], 0x10
jb 0x1007dee9
mov eax, dword [ebx + 8]
jmp 0x1007deec
lea eax, [ebx + 8]
push dword [esp]
push eax
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1007df0d
cmp ebx, ebp
je 0x1007e003
mov ebx, dword [ebx + 4]
jmp 0x1007ded6
add ebx, 0x20
lea ecx, [esp + 0x14]
call fcn.100026e0
mov dword [0x10184ee8], ebx
jmp 0x1007d92a
mov ecx, 0x811c9dc5
jmp 0x1007df96
mov ebx, dword [esp]
and ebx, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp + 4]
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 ebx, edx
jne 0x1007df3c
cmp dword [esp + 8], 0
je 0x1007df96
add edx, dword [esp + 4]
xor ebx, ebx
movzx ebp, byte [edx + ebx]
xor ebp, ecx
imul ecx, ebp, 0x1000193
inc ebx
cmp dword [esp + 8], ebx
jne 0x1007df83
mov edx, dword [esp + 0xc]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1007e003
add ecx, ecx
mov ebp, dword [eax + ecx*4]
mov eax, dword [esp]
cmp eax, dword [ebx + 0x18]
jne 0x1007dfd8
cmp dword [ebx + 0x1c], 0x10
jb 0x1007dfc1
mov eax, dword [ebx + 8]
jmp 0x1007dfc4
lea eax, [ebx + 8]
push dword [esp]
push eax
push dword [esp + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1007dfe1
cmp ebx, ebp
je 0x1007e003
mov ebx, dword [ebx + 4]
jmp 0x1007dfae
lea ebp, [ebx + 0x20]
lea ecx, [esp + 0x14]
call fcn.100026e0
mov dword [0x10184ee8], ebp
mov eax, dword [ebx + 0x24]
add eax, edi
vmovss xmm0, dword [esp + 0x10]
jmp 0x1007d957
push 0x1016ba76
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
int3