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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffe0
sub esp, 0x140
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov ecx, dword [0x1017f528]
xor ecx, ebp
mov dword [esp + 0x128], ecx
mov eax, dword [eax]
test eax, eax
je 0x1007b701
push 0x4600400b
push edx
mov esi, edx
call eax
mov edx, esi
add esp, 8
test al, al
je 0x1007baf1
mov eax, dword [0x10184e0c]
test al, 1
je 0x1007bb0c
mov edi, dword [0x10184e08]
mov ebx, dword [edi + 4]
mov eax, dword [0x10184e04]
test al, 1
je 0x1007bb77
mov edi, dword [0x10184e00]
mov eax, dword [edi + 4]
vmovss xmm0, dword [eax + edx + 8]
vaddss xmm2, xmm0, dword [edx + ebx + 8]
vmovss xmm0, dword [eax + edx]
vmovss xmm1, dword [eax + edx + 4]
vaddss xmm3, xmm1, dword [edx + ebx + 4]
vaddss xmm0, xmm0, dword [edx + ebx]
mov eax, dword [0x10184dfc]
test al, 1
vmovss dword [esp + 0x10], xmm0
je 0x1007bbeb
mov edi, dword [0x10184df8]
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
vmovss xmm1, dword [esi]
vmovsd xmm4, qword [esi + 4]
vmovsd xmm0, qword [ebx + 4]
vsubps xmm7, xmm4, xmm0
vmovss dword [esp + 0x1c], xmm1
vsubss xmm6, xmm1, dword [ebx]
vmulss xmm0, xmm7, xmm7
vfmadd231ss xmm0, xmm6, xmm6
vmovshdup xmm1, xmm7
vfmadd231ss xmm0, xmm1, xmm1
vcvtss2sd xmm0, xmm0, xmm0
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
vmovss xmm1, dword [0x10129738]
vmulss xmm2, xmm2, xmm1
vmulss xmm3, xmm3, xmm1
mov eax, dword [edi + 4]
vaddss xmm5, xmm2, dword [eax + edx + 8]
vaddss xmm3, xmm3, dword [eax + edx + 4]
vmulss xmm1, xmm1, dword [esp + 0x10]
vaddss xmm1, xmm1, dword [eax + edx]
vmovshdup xmm2, xmm4
vmovaps xmmword [esp + 0x20], xmm2
vmovss dword [esp + 0xc], xmm1
vmovss dword [esp + 0x14], xmm3
vmovss dword [esp + 0x18], xmm5
mov edi, edx
jb 0x1007b7f8
vsqrtsd xmm2, xmm0, xmm0
jmp 0x1007b848
sub esp, 8
vmovsd qword [esp], xmm0
vmovaps xmmword [esp + 0x68], xmm7
vmovss dword [esp + 0x18], xmm6
vmovaps xmmword [esp + 0x58], xmm4
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
vmovaps xmm4, xmmword [esp + 0x58]
vmovss xmm5, dword [esp + 0x20]
vmovss xmm3, dword [esp + 0x1c]
vmovss xmm1, dword [esp + 0x14]
vmovss xmm6, dword [esp + 0x18]
vmovaps xmm7, xmmword [esp + 0x68]
add esp, 8
fstp qword [esp + 0x48]
vmovsd xmm2, qword [esp + 0x48]
vsubss xmm0, xmm1, dword [esp + 0x1c]
vsubss xmm1, xmm5, dword [esp + 0x20]
vcvtsd2ss xmm2, xmm2, xmm2
vsubss xmm3, xmm3, xmm4
vxorps xmm4, xmm4, xmm4
vucomiss xmm2, xmm4
jne 0x1007b868
jnp 0x1007b875
vdivss xmm6, xmm6, xmm2
vbroadcastss xmm5, xmm2
vdivps xmm7, xmm7, xmm5
vmulss xmm5, xmm3, xmm7
vmovss dword [esp + 0x10], xmm6
vfmadd231ss xmm5, xmm0, xmm6
vmovshdup xmm6, xmm7
vfmadd231ss xmm5, xmm1, xmm6
vucomiss xmm4, xmm5
jbe 0x1007b8ce
vmulss xmm2, xmm3, xmm3
vfmadd213ss xmm0, xmm0, xmm2
vfmadd213ss xmm1, xmm1, xmm0
vcvtss2sd xmm0, xmm1, xmm1
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
jae 0x1007b910
sub esp, 8
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esp + 0x30]
vmovsd xmm0, qword [esp + 0x30]
jmp 0x1007b98c
vucomiss xmm5, xmm2
jbe 0x1007b916
vmovss xmm0, dword [esp + 0x18]
vsubss xmm0, xmm0, dword [ebx + 8]
vmovss xmm1, dword [esp + 0x14]
vsubss xmm1, xmm1, dword [ebx + 4]
vmovss xmm2, dword [esp + 0xc]
vsubss xmm2, xmm2, dword [ebx]
vmulss xmm1, xmm1, xmm1
vfmadd231ss xmm1, xmm2, xmm2
vfmadd231ss xmm1, xmm0, xmm0
vcvtss2sd xmm0, xmm1, xmm1
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
jb 0x1007b972
vsqrtsd xmm0, xmm0, xmm0
jmp 0x1007b98c
vmulss xmm0, xmm6, xmm5
vmulss xmm1, xmm7, xmm5
vmulss xmm2, xmm5, dword [esp + 0x10]
vaddss xmm0, xmm0, dword [esi + 8]
vaddss xmm1, xmm1, dword [esi + 4]
vaddss xmm2, xmm2, dword [esi]
vmovss xmm3, dword [esp + 0x18]
vsubss xmm0, xmm3, xmm0
vmovss xmm3, dword [esp + 0x14]
vsubss xmm1, xmm3, xmm1
vmovss xmm3, dword [esp + 0xc]
vsubss xmm2, xmm3, xmm2
vmulss xmm1, xmm1, xmm1
vfmadd231ss xmm1, xmm2, xmm2
vfmadd231ss xmm1, xmm0, xmm0
vcvtss2sd xmm0, xmm1, xmm1
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
jb 0x1007b9ae
vsqrtsd xmm0, xmm0, xmm0
jmp 0x1007b9c8
sub esp, 8
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esp + 0x38]
vmovsd xmm0, qword [esp + 0x38]
mov edx, edi
vcvtsd2ss xmm0, xmm0, xmm0
vbroadcastss xmm1, dword [0x10129734]
vxorps xmm0, xmm0, xmm1
vucomiss xmm0, dword [0x101298b4]
jbe 0x1007b9dc
jmp 0x1007baf1
sub esp, 8
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esp + 0x40]
vmovsd xmm0, qword [esp + 0x40]
mov edx, edi
vcvtsd2ss xmm0, xmm0, xmm0
vucomiss xmm0, dword [0x101298b4]
ja 0x1007baf1
mov edi, dword [ebp + 0x10]
vxorps xmm0, xmm0, xmm0
vmovups ymmword [esp + 0xf4], ymm0
vmovaps ymmword [esp + 0xe0], ymm0
vmovaps ymmword [esp + 0xc0], ymm0
mov ecx, dword [0x1017f630]
mov eax, dword [esi + 8]
mov dword [esp + 0x80], eax
vmovsd xmm1, qword [esi]
vmovsd qword [esp + 0x78], xmm1
mov dword [esp + 0x84], 0
vmovss xmm1, dword [ebx + 8]
vsubss xmm1, xmm1, dword [esi + 8]
vmovsd xmm2, qword [ebx]
vmovsd xmm3, qword [esi]
vsubps xmm2, xmm2, xmm3
vmovlps qword [esp + 0x88], xmm2
vmovss dword [esp + 0x90], xmm1
vmovups ymmword [esp + 0x94], ymm0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov byte [esp + 0xbc], 1
vmulps xmm0, xmm2, xmm2
vmovshdup xmm0, xmm0
vfmadd231ss xmm0, xmm2, xmm2
vfmadd231ss xmm0, xmm1, xmm1
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
setp al
mov ebx, edx
setne dl
or dl, al
mov byte [esp + 0xbd], dl
mov eax, dword [ecx]
lea edx, [esp + 0xc0]
lea esi, [esp + 0x78]
push edx
push ebx
push 0x4600400b
push esi
vzeroupper
call dword [eax + 0xc]
vmovss xmm0, dword [esp + 0xec]
vucomiss xmm0, dword [edi + 0x2c]
ja 0x1007baf1
vmovups ymm0, ymmword [esp + 0xf4]
vmovups ymmword [edi + 0x34], ymm0
vmovaps ymm0, ymmword [esp + 0xc0]
vmovaps ymm1, ymmword [esp + 0xe0]
vmovups ymmword [edi + 0x20], ymm1
vmovups ymmword [edi], ymm0
mov ecx, dword [esp + 0x128]
xor ecx, ebp
vzeroupper
call fcn.100d7fe0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
or eax, 1
mov dword [0x10184e0c], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x14], eax
lea ecx, [esp + 0xc0]
mov dword [esp + 0x10], ecx
push str.CBaseEntity__m_vecMaxs
call fcn.10005ce0
mov ebx, dword [esp + 0xd0]
cmp dword [esp + 0xd4], 0x10
jb 0x1007bb4e
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x10], eax
test ebx, ebx
je 0x1007bc5e
lea ecx, [ebx - 1]
mov eax, ebx
and eax, 3
mov dword [esp + 0xc], eax
cmp ecx, 3
jae 0x1007bc79
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1007bcc3
or eax, 1
mov dword [0x10184e04], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x18], eax
lea ecx, [esp + 0xc0]
mov dword [esp + 0xc], ecx
push str.CBaseEntity__m_vecMins
call fcn.10005ce0
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x10], eax
cmp dword [esp + 0xd4], 0x10
jb 0x1007bbbd
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x10], 0
je 0x1007bc65
mov eax, dword [esp + 0x10]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 0x14], eax
cmp ecx, 3
jae 0x1007bd51
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1007bd9d
vmovss dword [esp + 0x20], xmm3
vmovss dword [esp + 0x1c], xmm2
or eax, 1
mov dword [0x10184dfc], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x18], eax
lea ecx, [esp + 0xc0]
mov dword [esp + 0xc], ecx
push str.CBaseEntity__m_vecOrigin
call fcn.10005ce0
mov ebx, dword [esp + 0xd0]
cmp dword [esp + 0xd4], 0x10
jb 0x1007bc39
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xc], eax
test ebx, ebx
je 0x1007bc6f
lea ecx, [ebx - 1]
mov eax, ebx
and eax, 3
mov dword [esp + 0x14], eax
cmp ecx, 3
jae 0x1007be2f
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1007be79
mov ecx, 0x811c9dc5
jmp 0x1007bce3
mov ecx, 0x811c9dc5
jmp 0x1007bdbd
mov ecx, 0x811c9dc5
jmp 0x1007be99
mov esi, ebx
and esi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp + 0x10]
movzx edi, byte [eax + edx]
xor edi, ecx
imul ecx, edi, 0x1000193
movzx edi, byte [eax + edx + 1]
xor edi, ecx
imul ecx, edi, 0x1000193
movzx edi, byte [eax + edx + 2]
xor edi, ecx
imul ecx, edi, 0x1000193
movzx edi, byte [eax + edx + 3]
xor edi, ecx
imul ecx, edi, 0x1000193
add edx, 4
cmp esi, edx
jne 0x1007bc89
cmp dword [esp + 0xc], 0
je 0x1007bce3
add edx, dword [esp + 0x10]
xor esi, esi
movzx edi, byte [edx + esi]
xor edi, ecx
imul ecx, edi, 0x1000193
inc esi
cmp dword [esp + 0xc], esi
jne 0x1007bcd0
mov edx, dword [esp + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1007bf0b
add ecx, ecx
mov esi, dword [eax + ecx*4]
cmp ebx, dword [edi + 0x18]
je 0x1007bd14
cmp edi, esi
je 0x1007bf0b
mov edi, dword [edi + 4]
cmp ebx, dword [edi + 0x18]
jne 0x1007bd04
cmp dword [edi + 0x1c], 0x10
jb 0x1007bd1f
mov eax, dword [edi + 8]
jmp 0x1007bd22
lea eax, [edi + 8]
push ebx
push eax
push dword [esp + 0x18]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x1007bd04
add edi, 0x20
lea ecx, [esp + 0xc0]
call fcn.100026e0
mov dword [0x10184e08], edi
mov edx, dword [ebp + 0x14]
jmp 0x1007b714
mov esi, dword [esp + 0x10]
and esi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp + 0xc]
movzx edi, byte [eax + edx]
xor edi, ecx
imul ecx, edi, 0x1000193
movzx edi, byte [eax + edx + 1]
xor edi, ecx
imul ecx, edi, 0x1000193
movzx edi, byte [eax + edx + 2]
xor edi, ecx
imul ecx, edi, 0x1000193
movzx edi, byte [eax + edx + 3]
xor edi, ecx
imul ecx, edi, 0x1000193
add edx, 4
cmp esi, edx
jne 0x1007bd63
cmp dword [esp + 0x14], 0
je 0x1007bdbd
add edx, dword [esp + 0xc]
xor esi, esi
movzx edi, byte [edx + esi]
xor edi, ecx
imul ecx, edi, 0x1000193
inc esi
cmp dword [esp + 0x14], esi
jne 0x1007bdaa
mov edx, dword [esp + 0x18]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1007bf0b
add ecx, ecx
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x10]
cmp eax, dword [edi + 0x18]
jne 0x1007be05
cmp dword [edi + 0x1c], 0x10
jb 0x1007bded
mov eax, dword [edi + 8]
jmp 0x1007bdf0
lea eax, [edi + 8]
push dword [esp + 0x10]
push eax
push dword [esp + 0x14]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1007be12
cmp edi, esi
je 0x1007bf0b
mov edi, dword [edi + 4]
jmp 0x1007bdd9
add edi, 0x20
lea ecx, [esp + 0xc0]
call fcn.100026e0
mov dword [0x10184e00], edi
mov edx, dword [ebp + 0x14]
jmp 0x1007b72a
mov esi, ebx
and esi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp + 0xc]
movzx edi, byte [eax + edx]
xor edi, ecx
imul ecx, edi, 0x1000193
movzx edi, byte [eax + edx + 1]
xor edi, ecx
imul ecx, edi, 0x1000193
movzx edi, byte [eax + edx + 2]
xor edi, ecx
imul ecx, edi, 0x1000193
movzx edi, byte [eax + edx + 3]
xor edi, ecx
imul ecx, edi, 0x1000193
add edx, 4
cmp esi, edx
jne 0x1007be3f
cmp dword [esp + 0x14], 0
je 0x1007be99
add edx, dword [esp + 0xc]
xor esi, esi
movzx edi, byte [edx + esi]
xor edi, ecx
imul ecx, edi, 0x1000193
inc esi
cmp dword [esp + 0x14], esi
jne 0x1007be86
mov edx, dword [esp + 0x18]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1007bf0b
add ecx, ecx
mov esi, dword [eax + ecx*4]
cmp ebx, dword [edi + 0x18]
je 0x1007bec2
cmp edi, esi
je 0x1007bf0b
mov edi, dword [edi + 4]
cmp ebx, dword [edi + 0x18]
jne 0x1007beb6
cmp dword [edi + 0x1c], 0x10
jb 0x1007becd
mov eax, dword [edi + 8]
jmp 0x1007bed0
lea eax, [edi + 8]
push ebx
push eax
push dword [esp + 0x14]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
jne 0x1007beb6
add edi, 0x20
lea ecx, [esp + 0xc0]
call fcn.100026e0
mov dword [0x10184df8], edi
mov edx, dword [ebp + 0x14]
vmovss xmm2, dword [esp + 0x1c]
vmovss xmm3, dword [esp + 0x20]
jmp 0x1007b768
push 0x1016ba76
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
int3