Function at 0x10058d70
Capabilities:
Hash data using fnv

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x38
mov esi, ecx
mov ecx, dword [0x1029fc38]
mov eax, dword [ecx]
call dword [eax + 0x68]
test al, al
je 0x10058dad
mov eax, dword [0x1029fb9c]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x10058dad
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
cmp eax, 9
je 0x10058dbe
cmp eax, 0x62
jne 0x10058db4
xor ebx, ebx
jmp 0x10058e3e
mov ecx, esi
call fcn.100590e0
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret 8
lea ecx, [edi + 4]
mov eax, dword [edi + 4]
call dword [eax + 0x20]
test eax, eax
je 0x10058e38
mov ebx, eax
add ebx, 4
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
cmp eax, 0xb
jb 0x10058e38
lea edi, [eax + ebx]
add edi, 0xfffffff6
mov eax, edi
sub eax, ebx
push eax
push 0x66
push ebx
call sub.VCRUNTIME140.dll_memchr
add esp, 0xc
test eax, eax
je 0x10058e38
mov ebp, eax
nop word [eax + eax]
push 0xb
push str.fraggrenade
push ebp
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10058e2d
inc ebp
mov eax, edi
sub eax, ebp
push eax
push 0x66
push ebp
call sub.VCRUNTIME140.dll_memchr
add esp, 0xc
mov ebp, eax
test eax, eax
jne 0x10058e00
jmp 0x10058e38
sub ebp, ebx
cmp ebp, 0xffffffff
je 0x10058e38
xor ebx, ebx
jmp 0x10058e3a
mov bl, 1
mov edi, dword [esp + 0x4c]
lea ecx, [edi + 8]
mov eax, dword [edi + 8]
call dword [eax + 0x24]
test bl, bl
jne 0x10058db4
test al, al
jne 0x10058db4
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov dword [esp], eax
test byte [edi + 0xec], 0x20
jne 0x100590c1
mov ecx, eax
shr ecx, 0x18
mov edx, eax
shr edx, 0x10
movzx edi, al
xor edi, 0x811c9dc5
imul edi, edi, 0x1000193
movzx ebx, ah
xor ebx, edi
imul edi, ebx, 0x1000193
movzx edx, dl
xor edx, edi
imul edx, edx, 0x1000193
xor edx, ecx
imul edi, edx, 0x1000193
and edi, dword [esi + 0x18]
mov edx, dword [esi + 4]
mov ecx, dword [esi + 0xc]
lea ebx, [edi + edi]
mov ebp, dword [ecx + ebx*4 + 4]
mov dword [esp + 4], edx
cmp ebp, edx
je 0x10058ef2
cmp eax, dword [ebp + 8]
je 0x10058edc
mov edx, dword [ecx + ebx*4]
nop word cs:[eax + eax]
cmp ebp, edx
je 0x10058ef2
mov ebp, dword [ebp + 4]
cmp eax, dword [ebp + 8]
jne 0x10058ed0
cmp ebp, dword [esp + 4]
je 0x10058ef2
lea eax, [edi*2 + 1]
mov ebp, dword [esp + 4]
jmp 0x10059082
xor eax, eax
cmp dword [esp + 0x50], 0x62
sete al
mov ecx, dword [0x1029fb9c]
mov ecx, dword [ecx + 0x24]
mov edi, dword [esp + 0x4c]
vmovss xmm0, dword [ecx + edi]
vsubss xmm0, xmm0, dword [edi + 0x29b0]
mov ecx, dword [0x1029fbac]
bswap ecx
mov edx, dword [0x1029fbb0]
add edx, ecx
mov ecx, dword [0x1029fbb4]
ror edx, cl
vmovss xmm1, dword [edx + 0x20]
mov dword [esp + 0xc], 0xde537365
mov ecx, dword [esp + 0xc]
bswap ecx
mov dword [esp + 0xc], ecx
add dword [esp + 0xc], 0x9a8cfa42
mov ecx, dword [esp + 0xc]
rorx ecx, ecx, 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
vcvtsi2ss xmm2, xmm2, ecx
mov dword [esp + 0xc], 0xdd0d4884
mov ecx, dword [esp + 0xc]
bswap ecx
mov dword [esp + 0xc], ecx
add dword [esp + 0xc], 0x9bb7f271
mov ecx, dword [esp + 0xc]
rorx ecx, ecx, 0x19
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
vcvtsi2ss xmm3, xmm3, ecx
vinsertps xmm0, xmm0, xmm2, 0x10
vinsertps xmm1, xmm1, xmm3, 0x10
vdivps xmm0, xmm0, xmm1
vmovshdup xmm1, xmm0
vaddss xmm0, xmm0, xmm1
vcvttss2si ecx, xmm0
lea edx, [edi + 0x29b0]
mov dword [esp + 4], edx
mov dword [esp + 0x2c], ecx
mov edx, dword [0x1029fb9c]
mov ebx, dword [edx + 0x34]
add ebx, edi
mov ebp, dword [edx + 0x2c]
add ebp, edi
lea eax, [eax*2 + 0x2c]
mov word [esp + 0xa], ax
mov ecx, dword [0x1029fc3c]
mov eax, dword [edx + 0xf0]
mov edx, dword [ecx]
push dword [eax + edi]
call dword [edx + 0x10]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x2c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ebp
lea eax, [esp + 0xa]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x20], eax
mov eax, esp
mov dword [esp + 0x24], eax
lea eax, [esp + 0xc]
lea edx, [esp + 0x24]
lea edi, [esp + 0x30]
mov ecx, esi
push eax
push edx
push 0x101451d4
push edi
call fcn.100591e0
movzx eax, byte [esp]
movzx edx, byte [esp + 1]
movzx edi, byte [esp + 2]
movzx ebx, byte [esp + 3]
mov ebp, dword [esi + 4]
mov ecx, dword [esi + 0xc]
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor eax, edx
imul eax, eax, 0x1000193
xor eax, edi
imul eax, eax, 0x1000193
xor eax, ebx
imul ebx, eax, 0x1000193
and ebx, dword [esi + 0x18]
lea eax, [ebx*2 + 1]
add ebx, ebx
mov eax, dword [ecx + eax*4]
cmp eax, ebp
je 0x100590d0
mov edx, dword [esp]
cmp edx, dword [eax + 8]
je 0x100590ac
mov ecx, dword [ecx + ebx*4]
nop word cs:[eax + eax]
cmp eax, ecx
je 0x100590d0
mov eax, dword [eax + 4]
cmp edx, dword [eax + 8]
jne 0x100590a0
add eax, 0xc
mov ecx, esi
push 1
push eax
call fcn.100594b0
test al, al
jne 0x10058db4
mov eax, esp
mov ecx, esi
push eax
call fcn.1005c010
jmp 0x10058db4
push str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
int3