Function at 0x10061940
Capabilities:
Hash data using fnv

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x40
mov esi, ecx
mov ecx, dword [0x102700e4]
mov eax, dword [ecx]
call dword [eax + 0x68]
test al, al
je 0x1006197d
mov eax, dword [0x1026fc70]
mov eax, dword [eax]
cmp dword [eax], 0
je 0x1006197d
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x54]
cmp eax, 9
je 0x10061991
cmp eax, 0x62
jne 0x10061987
xor ebx, ebx
jmp 0x10061a0e
add esi, 4
mov ecx, esi
call fcn.10061d00
add esp, 0x40
pop esi
pop edi
pop ebx
pop ebp
ret 8
lea ecx, [ebp + 4]
mov eax, dword [ebp + 4]
call dword [eax + 0x20]
test eax, eax
je 0x10061a08
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 0x10061a08
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 0x10061a08
mov ebp, eax
nop dword [eax]
push 0xb
push str.fraggrenade
push ebp
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100619fd
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 0x100619d0
jmp 0x10061a08
sub ebp, ebx
cmp ebp, 0xffffffff
je 0x10061a08
xor ebx, ebx
jmp 0x10061a0a
mov bl, 1
mov ebp, dword [esp + 0x54]
lea ecx, [ebp + 8]
mov eax, dword [ebp + 8]
call dword [eax + 0x24]
test bl, bl
jne 0x10061987
test al, al
jne 0x10061987
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 8]
mov ebx, eax
mov dword [esp], eax
mov ecx, dword [0x102700e8]
mov eax, dword [0x1026fc70]
mov eax, dword [eax + 0xf0]
mov edx, dword [ecx]
push dword [eax + ebp]
call dword [edx + 0x10]
test eax, eax
je 0x10061a70
mov ecx, dword [0x1026fc70]
mov edx, dword [ecx]
mov ecx, dword [ecx + 0x20]
mov edi, dword [ecx + eax]
mov edx, dword [edx]
cmp edi, dword [ecx + edx]
sete cl
cmp eax, edx
setne al
and al, cl
jmp 0x10061a72
xor eax, eax
lea ecx, [esi + 4]
test byte [ebp + 0xec], 0x20
jne 0x10061cdb
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
mov edx, ebx
shr edx, 8
mov ecx, ebx
shr ecx, 0x10
mov eax, ebx
shr eax, 0x18
movzx edi, bl
xor edi, 0x811c9dc5
imul edi, edi, 0x1000193
movzx edx, dl
xor edx, edi
imul edx, edx, 0x1000193
movzx ecx, cl
xor ecx, edx
imul ecx, ecx, 0x1000193
xor ecx, eax
imul edi, ecx, 0x1000193
and edi, dword [esi + 0x1c]
mov ecx, dword [esi + 8]
mov eax, dword [esi + 0x10]
lea edx, [edi + edi]
mov ebp, dword [eax + edx*4 + 4]
mov dword [esp + 4], ecx
cmp ebp, ecx
je 0x10061b12
cmp ebx, dword [ebp + 8]
je 0x10061afc
mov ecx, dword [eax + edx*4]
nop word cs:[eax + eax]
cmp ebp, ecx
je 0x10061b12
mov ebp, dword [ebp + 4]
cmp ebx, dword [ebp + 8]
jne 0x10061af0
cmp ebp, dword [esp + 4]
je 0x10061b12
lea edi, [edi*2 + 1]
mov ebp, dword [esp + 4]
jmp 0x10061c9b
xor eax, eax
cmp dword [esp + 0x58], 0x62
sete al
mov ecx, dword [0x1026fc70]
mov ecx, dword [ecx + 0x24]
mov edi, dword [esp + 0x54]
movss xmm0, dword [ecx + edi]
subss xmm0, dword [edi + 0x29b0]
mov ecx, dword [0x1026fc80]
bswap ecx
mov edx, dword [0x1026fc84]
add edx, ecx
mov ecx, dword [0x1026fc88]
ror edx, cl
movss xmm1, dword [edx + 0x20]
mov dword [esp + 0xc], 0xe8f79ddc
mov ecx, dword [esp + 0xc]
bswap ecx
mov dword [esp + 0xc], ecx
add dword [esp + 0xc], 0x249a8818
mov ecx, dword [esp + 0xc]
rol ecx, 0x14
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
cvtsi2ss xmm2, ecx
mov dword [esp + 0xc], 0x765ee9d9
mov ecx, dword [esp + 0xc]
bswap ecx
mov dword [esp + 0xc], ecx
add dword [esp + 0xc], 0xc256a18a
mov ecx, dword [esp + 0xc]
rol ecx, 0xe
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
cvtsi2ss xmm3, ecx
unpcklps xmm0, xmm2
unpcklps xmm1, xmm3
divps xmm0, xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
addss xmm1, xmm0
cvttss2si ecx, xmm1
lea edx, [edi + 0x29b0]
mov dword [esp + 4], edx
mov dword [esp + 0x34], ecx
mov edx, dword [0x1026fc70]
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 [0x102700e8]
mov eax, dword [edx + 0xf0]
mov edx, dword [ecx]
push dword [eax + edi]
call dword [edx + 0x10]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x34]
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 + 0x30]
mov dword [esp + 0x20], eax
mov eax, esp
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xc]
lea edx, [esp + 0x2c]
lea edi, [esp + 0x38]
mov ecx, dword [esp + 0x24]
push eax
push edx
push 0x101415a4
push edi
call fcn.10061de0
movzx ecx, byte [esp]
movzx edx, byte [esp + 1]
movzx edi, byte [esp + 2]
movzx ebx, byte [esp + 3]
mov ebp, dword [esi + 8]
mov eax, dword [esi + 0x10]
xor ecx, 0x811c9dc5
imul ecx, ecx, 0x1000193
xor ecx, edx
imul ecx, ecx, 0x1000193
xor ecx, edi
imul ecx, ecx, 0x1000193
xor ecx, ebx
imul edx, ecx, 0x1000193
and edx, dword [esi + 0x1c]
lea edi, [edx*2 + 1]
add edx, edx
mov edi, dword [eax + edi*4]
cmp edi, ebp
je 0x10061ce8
mov ecx, dword [esp]
cmp ecx, dword [edi + 8]
je 0x10061cbc
mov eax, dword [eax + edx*4]
nop dword [eax]
cmp edi, eax
je 0x10061ce8
mov edi, dword [edi + 4]
cmp ecx, dword [edi + 8]
jne 0x10061cb0
add edi, 0xc
movzx eax, byte [esp + 0x28]
mov ecx, esi
push eax
push 1
push edi
call fcn.100620d0
test al, al
mov ecx, dword [esp + 0x24]
jne 0x10061987
mov eax, esp
push eax
call fcn.10065040
jmp 0x10061987
push str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
int3