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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x118
mov ebx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x14], 0x10092630
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], ecx
mov eax, dword [eax]
test eax, eax
je 0x100904f0
push 0x4600400b
push ebx
call eax
add esp, 8
test al, al
je 0x1009085f
mov eax, dword [0x10132bb8]
test al, 1
je 0x10090878
mov edi, dword [0x10132bb4]
mov ecx, dword [edi + 4]
mov eax, dword [0x10132bb0]
test al, 1
je 0x100908df
mov edi, dword [0x10132bac]
mov eax, dword [edi + 4]
vmovss xmm0, dword [eax + ebx + 8]
vaddss xmm2, xmm0, dword [ebx + ecx + 8]
vmovss xmm0, dword [eax + ebx]
vmovss xmm1, dword [eax + ebx + 4]
vaddss xmm4, xmm1, dword [ebx + ecx + 4]
vaddss xmm0, xmm0, dword [ebx + ecx]
vmovss dword [ebp - 0x3c], xmm0
mov eax, dword [0x10132ba8]
test al, 1
je 0x10090949
mov edi, dword [0x10132ba4]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
vmovss xmm1, dword [0x100f54dc]
vmulss xmm0, xmm2, xmm1
vmovss dword [ebp - 0x20], xmm0
vmulss xmm0, xmm4, xmm1
vmovss dword [ebp - 0x24], xmm0
vmovsd xmm0, qword [eax]
vmovshdup xmm3, xmm0
vmovsd xmm2, qword [ecx]
vmovshdup xmm4, xmm2
vmovups xmmword [ebp - 0x104], xmm4
vsubss xmm4, xmm3, xmm4
vmovss dword [ebp - 0x28], xmm4
vmovups xmmword [ebp - 0x58], xmm2
vsubss xmm6, xmm0, xmm2
vmulss xmm4, xmm4, xmm4
vfmadd231ss xmm4, xmm6, xmm6
vmovss xmm2, dword [eax + 8]
vmovss xmm5, dword [ecx + 8]
vmovss dword [ebp - 0x2c], xmm5
vsubss xmm5, xmm2, xmm5
vfmadd231ss xmm4, xmm5, xmm5
vcvtss2sd xmm4, xmm4, xmm4
vsqrtsd xmm4, xmm4, xmm4
vcvtsd2ss xmm7, xmm4, xmm4
vmulss xmm1, xmm1, dword [ebp - 0x3c]
vmovss dword [ebp - 0x3c], xmm1
vxorps xmm1, xmm1, xmm1
vcmpneqss xmm4, xmm7, xmm1
vbroadcastss xmm1, dword [0x100f54d0]
vmovups xmmword [ebp - 0x124], xmm7
vblendvps xmm1, xmm1, xmm7, xmm4
vdivss xmm7, xmm6, xmm1
vmovss xmm4, dword [ebp - 0x28]
vdivss xmm6, xmm4, xmm1
vdivss xmm1, xmm5, xmm1
vmovss dword [ebp - 0x28], xmm1
mov ecx, dword [edi + 4]
vmovss xmm1, dword [ebp - 0x20]
vaddss xmm5, xmm1, dword [ecx + ebx + 8]
vmovss xmm1, dword [ebp - 0x24]
vaddss xmm1, xmm1, dword [ecx + ebx + 4]
vmovss xmm4, dword [ebp - 0x3c]
vaddss xmm4, xmm4, dword [ecx + ebx]
vmovups xmmword [ebp - 0x114], xmm3
vmovss dword [ebp - 0x40], xmm1
vsubss xmm1, xmm1, xmm3
vmovups xmmword [ebp - 0x3c], xmm0
vmovss dword [ebp - 0x24], xmm4
vsubss xmm3, xmm4, xmm0
vmovss dword [ebp - 0x44], xmm6
vmulss xmm6, xmm1, xmm6
vmovss dword [ebp - 0x48], xmm7
vfmadd231ss xmm6, xmm3, xmm7
vmovss dword [ebp - 0x20], xmm2
vmovaps xmm0, xmm5
vsubss xmm4, xmm5, xmm2
vmovss xmm2, dword [ebp - 0x28]
vfmadd231ss xmm6, xmm4, xmm2
vxorps xmm5, xmm5, xmm5
vucomiss xmm5, xmm6
jbe 0x10090697
vmulss xmm0, xmm1, xmm1
vfmadd213ss xmm3, xmm3, xmm0
vfmadd213ss xmm4, xmm4, xmm3
vcvtss2sd xmm0, xmm4, xmm4
jmp 0x100906cf
vucomiss xmm6, dword [ebp - 0x124]
jbe 0x100906f3
vsubss xmm0, xmm0, dword [ebp - 0x2c]
vmovss xmm1, dword [ebp - 0x40]
vsubss xmm1, xmm1, dword [ebp - 0x104]
vmovss xmm2, dword [ebp - 0x24]
vsubss xmm2, xmm2, dword [ebp - 0x58]
vmulss xmm1, xmm1, xmm1
vfmadd231ss xmm1, xmm2, xmm2
vfmadd231ss xmm1, xmm0, xmm0
vcvtss2sd xmm0, xmm1, xmm1
vsqrtsd xmm0, xmm0, xmm0
vcvtsd2ss xmm0, xmm0, xmm0
vbroadcastss xmm1, dword [0x100f54d8]
vxorps xmm1, xmm0, xmm1
vucomiss xmm1, dword [0x100f5618]
jbe 0x10090751
jmp 0x1009085f
vmulss xmm2, xmm2, xmm6
vmulss xmm1, xmm6, dword [ebp - 0x44]
vmulss xmm3, xmm6, dword [ebp - 0x48]
vaddss xmm4, xmm1, dword [ebp - 0x114]
vaddss xmm2, xmm2, dword [ebp - 0x20]
vsubss xmm1, xmm0, xmm2
vmovss xmm2, dword [ebp - 0x40]
vsubss xmm0, xmm2, xmm4
vaddss xmm2, xmm3, dword [ebp - 0x3c]
vmovss xmm3, dword [ebp - 0x24]
vsubss xmm2, xmm3, xmm2
vmulss xmm0, xmm0, xmm0
vfmadd231ss xmm0, xmm2, xmm2
vfmadd231ss xmm0, xmm1, xmm1
vcvtss2sd xmm0, xmm0, xmm0
vsqrtsd xmm0, xmm0, xmm0
vcvtsd2ss xmm1, xmm0, xmm0
vucomiss xmm1, dword [0x100f5618]
ja 0x1009085f
vxorps xmm4, xmm4, xmm4
vucomiss xmm4, xmm1
ja 0x1009085f
mov esi, dword [ebp + 0x10]
vxorps xmm0, xmm0, xmm0
vmovups ymmword [ebp - 0x78], ymm0
vmovups ymmword [ebp - 0x8c], ymm0
vmovups ymmword [ebp - 0xac], ymm0
mov ecx, dword [0x1012d384]
mov edx, dword [eax + 8]
mov dword [ebp - 0xec], edx
vmovsd xmm1, qword [eax]
vmovsd qword [ebp - 0xf4], xmm1
mov dword [ebp - 0xe8], 0
vmovss xmm1, dword [ebp - 0x2c]
vsubss xmm1, xmm1, dword [ebp - 0x20]
vmovups xmm2, xmmword [ebp - 0x58]
vsubps xmm2, xmm2, xmmword [ebp - 0x3c]
vmovlps qword [ebp - 0xe4], xmm2
vmovss dword [ebp - 0xdc], xmm1
vmovups ymmword [ebp - 0xd8], ymm0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb8], 0
vmulps xmm0, xmm2, xmm2
vmovshdup xmm0, xmm0
vfmadd231ss xmm0, xmm2, xmm2
vfmadd231ss xmm0, xmm1, xmm1
vucomiss xmm0, xmm4
mov byte [ebp - 0xb0], 1
setp al
setne dl
or dl, al
mov byte [ebp - 0xaf], dl
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x10], 0xffffffff
lea edx, [ebp - 0xac]
lea edi, [ebp - 0xf4]
push edx
push ebx
push 0x4600400b
push edi
vzeroupper
call eax
vmovss xmm0, dword [ebp - 0x80]
vucomiss xmm0, dword [esi + 0x2c]
jae 0x1009085f
vmovups ymm0, ymmword [ebp - 0x78]
vmovups ymmword [esi + 0x34], ymm0
vmovups ymm0, ymmword [ebp - 0xac]
vmovups ymm1, ymmword [ebp - 0x8c]
vmovups ymmword [esi + 0x20], ymm1
vmovups ymmword [esi], ymm0
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x118
pop esi
pop edi
pop ebx
pop ebp
vzeroupper
ret 0x14
or eax, 1
mov dword [0x10132bb8], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x3c], ecx
push str.CBaseEntity__m_vecMaxs
call fcn.100083b0
mov esi, dword [ebp - 0x9c]
cmp dword [ebp - 0x98], 0x10
jb 0x100908ba
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x3c], eax
test esi, esi
je 0x100909b6
mov eax, esi
and eax, 3
mov dword [ebp - 0x20], eax
cmp esi, 4
jae 0x100909d1
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090a1a
mov dword [ebp - 0x28], ecx
or eax, 1
mov dword [0x10132bb0], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], 2
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x3c], ecx
push str.CBaseEntity__m_vecMins
call fcn.100083b0
mov esi, dword [ebp - 0x9c]
cmp dword [ebp - 0x98], 0x10
jb 0x10090924
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x3c], eax
test esi, esi
je 0x100909bd
mov eax, esi
and eax, 3
mov dword [ebp - 0x20], eax
cmp esi, 4
jae 0x10090aa4
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090aed
vmovss dword [ebp - 0x2c], xmm4
vmovss dword [ebp - 0x58], xmm2
or eax, 1
mov dword [0x10132ba8], eax
mov eax, dword [0x1012d324]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 4
lea ecx, [ebp - 0xac]
mov dword [ebp - 0x20], ecx
push str.CBaseEntity__m_vecOrigin
call fcn.100083b0
mov esi, dword [ebp - 0x9c]
cmp dword [ebp - 0x98], 0x10
jb 0x10090995
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x20], eax
test esi, esi
je 0x100909c7
mov eax, esi
and eax, 3
mov dword [ebp - 0x24], eax
cmp esi, 4
jae 0x10090b7a
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090bc3
mov ecx, 0x811c9dc5
jmp 0x10090a37
mov ecx, 0x811c9dc5
jmp 0x10090b0a
mov ecx, 0x811c9dc5
jmp 0x10090be0
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x3c]
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 0x100909e0
cmp dword [ebp - 0x20], 0
je 0x10090a37
add edx, dword [ebp - 0x3c]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x20], edi
jne 0x10090a25
mov edx, dword [ebp - 0x24]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10090c53
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x10090a76
cmp dword [edi + 0x1c], 0x10
jb 0x10090a62
mov eax, dword [edi + 8]
jmp 0x10090a65
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x3c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10090a88
cmp edi, ebx
je 0x10090c53
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x10090a57
jmp 0x10090a76
add edi, 0x20
lea ecx, [ebp - 0xac]
call fcn.100029d0
mov dword [0x10132bb4], edi
mov ebx, dword [ebp + 0x14]
jmp 0x10090503
mov edi, esi
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [ebp - 0x3c]
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 0x10090ab3
cmp dword [ebp - 0x20], 0
je 0x10090b0a
add edx, dword [ebp - 0x3c]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [ebp - 0x20], edi
jne 0x10090af8
mov edx, dword [ebp - 0x24]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x10090c67
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x10090b49
cmp dword [edi + 0x1c], 0x10
jb 0x10090b35
mov eax, dword [edi + 8]
jmp 0x10090b38
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x3c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10090b5b
cmp edi, ebx
je 0x10090c67
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x10090b2a
jmp 0x10090b49
add edi, 0x20
lea ecx, [ebp - 0xac]
call fcn.100029d0
mov dword [0x10132bac], edi
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x28]
jmp 0x10090519
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 0x10090b89
cmp dword [ebp - 0x24], 0
je 0x10090be0
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 - 0x24], edi
jne 0x10090bce
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 0x10090c7b
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp esi, dword [edi + 0x18]
jne 0x10090c1f
cmp dword [edi + 0x1c], 0x10
jb 0x10090c0b
mov eax, dword [edi + 8]
jmp 0x10090c0e
lea eax, [edi + 8]
push esi
push eax
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10090c2d
cmp edi, ebx
je 0x10090c7b
mov edi, dword [edi + 4]
cmp esi, dword [edi + 0x18]
je 0x10090c00
jmp 0x10090c1f
add edi, 0x20
lea ecx, [ebp - 0xac]
call fcn.100029d0
mov dword [0x10132ba4], edi
mov ebx, dword [ebp + 0x14]
vmovss xmm2, dword [ebp - 0x58]
vmovss xmm4, dword [ebp - 0x2c]
jmp 0x10090556
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
push ebp
sub esp, 0x10
add ebp, 0xc
lea ecx, [ebp - 0xac]
call fcn.100029d0
add esp, 0x10
pop ebp
ret