Function at 0x10076f30
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov edi, ecx
mov ebx, dword [ebp + 8]
movzx eax, byte [ebp + 0x14]
mov dword [ebp - 0x10], eax
add ecx, 4
call fcn.1004ac80
mov esi, eax
mov dword [ebx], eax
push 0x174
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ebx, eax
mov ecx, eax
push esi
push dword [ebp - 0x10]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
call fcn.1007a8e0
cmp esi, 0x3fff
mov dword [ebp - 0x1c], edi
ja 0x1007701b
mov eax, dword [edi + 0x2c]
cmp eax, esi
ja 0x1007700e
mov dword [ebp - 0x28], ebx
mov ebx, eax
add eax, eax
cmp ebx, esi
jbe 0x10076f90
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x10], eax
lea eax, [ebx*4]
xor ecx, ecx
dec ecx
cmp ebx, 0x40000000
cmovb ecx, eax
push ecx
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ecx, eax
mov dword [ebp - 0x14], eax
mov dword [edi + 0x30], eax
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x2c]
lea eax, [ecx + edi*4]
mov ecx, ebx
sub ecx, edi
shl ecx, 2
push ecx
push 0xff
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
shl edi, 2
push edi
mov edi, dword [ebp - 0x1c]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov dword [edi + 0x2c], ebx
test eax, eax
mov ebx, dword [ebp - 0x28]
je 0x1007700e
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
shl esi, 2
add esi, dword [edi + 0x30]
mov eax, esi
jmp 0x10077458
mov dword [ebp - 0x28], ebx
mov eax, esi
shr eax, 0x18
mov edi, esi
shr edi, 0x10
mov ebx, esi
shr ebx, 8
mov ecx, 0xff
mov edx, esi
and edx, ecx
and ebx, ecx
and edi, ecx
mov dword [ebp - 0x10], edx
mov ecx, edx
xor ecx, 0x811c9dc5
imul ecx, ecx, 0x1000193
xor ecx, ebx
imul ecx, ecx, 0x1000193
xor ecx, edi
imul ecx, ecx, 0x1000193
xor ecx, eax
imul ecx, ecx, 0x1000193
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x4c]
mov dword [ebp - 0x2c], ecx
and eax, ecx
mov ecx, edx
mov edx, dword [edx + 0x40]
mov dword [ebp - 0x14], edx
mov edx, dword [edx + eax*8 + 4]
mov dword [ebp - 0x20], edx
cmp edx, dword [ecx + 0x38]
mov dword [ebp - 0x24], ebx
je 0x100770ca
mov ecx, esi
and ecx, 0xff000000
mov dword [ebp - 0x18], edi
shl edi, 0x10
or edi, ecx
shl ebx, 8
or ebx, edi
mov edx, dword [ebp - 0x10]
or ebx, edx
mov edx, dword [ebp - 0x20]
cmp ebx, dword [edx + 8]
je 0x10077441
add eax, eax
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + eax*4]
mov eax, dword [ebp - 0x20]
mov edi, dword [ebp - 0x18]
cmp eax, edx
je 0x100770cd
mov eax, dword [eax + 4]
cmp ebx, dword [eax + 8]
jne 0x100770b9
jmp 0x10077452
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x3c], 0xfffffff
je 0x10077467
push 0x10
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
and esi, 0xff000000
shl edi, 0x10
or edi, esi
mov ebx, dword [ebp - 0x24]
shl ebx, 8
or ebx, edi
add ebx, dword [ebp - 0x10]
mov dword [eax + 8], ebx
mov dword [ebp - 0x20], eax
mov dword [eax + 0xc], 0
mov edi, dword [ebp - 0x1c]
mov eax, dword [edi + 0x3c]
inc eax
movd xmm1, eax
movss xmm0, dword [edi + 0x34]
movq xmm2, qword [0x102c3120]
por xmm1, xmm2
subsd xmm1, xmm2
cvtsd2ss xmm1, xmm1
movss xmm3, dword [edi + 0x50]
orpd xmm3, xmm2
subsd xmm3, xmm2
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm3
movaps xmm3, xmm1
divss xmm3, xmm2
ucomiss xmm3, xmm0
jbe 0x100773fb
mov dword [ebp - 0x24], ebx
mov esi, dword [edi + 0x50]
divss xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
add esp, 8
fstp dword [ebp - 0x38]
movss xmm0, dword [ebp - 0x38]
cvttss2si eax, xmm0
mov ecx, eax
subss xmm0, dword [0x102c3128]
cvttss2si edx, xmm0
sar ecx, 0x1f
and edx, ecx
or edx, eax
cmp edx, 9
mov eax, 8
cmovae eax, edx
cmp esi, eax
jae 0x100771be
lea ecx, [esi*8]
cmp ecx, eax
cmovb ecx, eax
cmp esi, 0x200
cmovae ecx, eax
mov esi, ecx
cmp esi, 0x10000001
jae 0x10077471
dec esi
or esi, 1
bsr ecx, esi
xor ecx, 0xffffffe0
add ecx, 0x21
xor eax, eax
inc eax
shl eax, cl
mov dword [ebp - 0x18], eax
mov edx, 2
shl edx, cl
mov esi, dword [edi + 0x40]
mov ebx, dword [edi + 0x44]
mov dword [ebp - 0x10], ebx
sub ebx, esi
sar ebx, 2
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x34], ebx
cmp ebx, edx
jae 0x10077243
cmp edx, 0x40000000
jae 0x1007747b
mov eax, 8
shl eax, cl
cmp edx, 0x400
mov dword [ebp - 0x30], edx
jb 0x10077258
cmp edx, 0x3ffffff8
jae 0x1007747b
add eax, 0x23
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x10077264
mov eax, dword [ebp - 0x10]
cmp esi, eax
mov edx, dword [ebp - 0x14]
je 0x100772b3
mov dword [esi], edx
add esi, 4
cmp esi, eax
jne 0x1007724d
jmp 0x100772b3
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ebx, eax
cmp dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x30]
je 0x10077295
mov eax, dword [edi + 0x40]
test dword [ebp - 0x34], 0x3ffffc00
je 0x1007728b
mov ecx, dword [eax - 4]
add eax, 0xfffffffc
sub eax, ecx
cmp eax, 0x20
jae 0x10077480
mov eax, ecx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov dword [edi + 0x40], ebx
lea eax, [ebx + esi*4]
mov dword [edi + 0x44], eax
mov dword [edi + 0x48], eax
shl esi, 2
xor eax, eax
mov edx, dword [ebp - 0x14]
mov dword [ebx + eax], edx
add eax, 4
cmp esi, eax
jne 0x100772a9
mov eax, dword [ebp - 0x18]
lea ebx, [eax - 1]
mov dword [edi + 0x4c], ebx
mov dword [edi + 0x50], eax
mov eax, dword [edi + 0x38]
mov ecx, dword [eax]
cmp ecx, edx
mov esi, edx
mov edx, dword [ebp - 0x24]
je 0x100773c8
mov eax, ecx
movzx ecx, byte [ecx + 8]
xor ecx, 0x811c9dc5
imul ecx, ecx, 0x1000193
movzx edx, byte [eax + 9]
xor edx, ecx
imul ecx, edx, 0x1000193
movzx edx, byte [eax + 0xa]
xor edx, ecx
imul ecx, edx, 0x1000193
movzx edx, byte [eax + 0xb]
xor edx, ecx
imul ecx, edx, 0x1000193
and ecx, dword [edi + 0x4c]
mov edx, dword [edi + 0x40]
lea edi, [ecx + ecx]
mov dword [ebp - 0x10], edi
lea edi, [ecx + ecx]
inc edi
mov ebx, dword [edx + ecx*8]
mov ecx, dword [eax]
cmp ebx, esi
je 0x10077382
mov dword [ebp - 0x18], edi
mov esi, dword [edx + edi*4]
mov edi, dword [eax + 8]
cmp edi, dword [esi + 8]
jne 0x1007735a
mov dword [ebp - 0x10], edx
mov esi, dword [esi]
cmp esi, eax
je 0x1007734f
mov edx, dword [eax + 4]
mov dword [edx], ecx
mov ebx, dword [ecx + 4]
mov dword [ebx], esi
mov edi, dword [esi + 4]
mov dword [edi], eax
mov dword [esi + 4], ebx
mov dword [ecx + 4], edx
mov dword [eax + 4], edi
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
mov dword [esi + edx*4], eax
jmp 0x100773b1
cmp ebx, esi
je 0x1007738d
mov esi, dword [esi + 4]
cmp edi, dword [esi + 8]
jne 0x1007735a
mov edx, dword [esi]
mov esi, dword [eax + 4]
mov dword [esi], ecx
mov edi, dword [ecx + 4]
mov dword [edi], edx
mov ebx, dword [edx + 4]
mov dword [ebx], eax
mov dword [edx + 4], edi
mov dword [ecx + 4], esi
mov dword [eax + 4], ebx
jmp 0x100773b1
mov esi, dword [ebp - 0x10]
mov dword [edx + esi*4], eax
mov dword [edx + edi*4], eax
jmp 0x100773b1
mov esi, dword [eax + 4]
mov dword [ebp - 0x18], esi
mov dword [esi], ecx
mov edi, dword [ecx + 4]
mov dword [edi], ebx
mov esi, dword [ebx + 4]
mov dword [esi], eax
mov dword [ebx + 4], edi
mov edi, dword [ebp - 0x18]
mov dword [ecx + 4], edi
mov dword [eax + 4], esi
mov esi, dword [ebp - 0x10]
mov dword [edx + esi*4], eax
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x14]
cmp ecx, esi
jne 0x100772d1
mov eax, dword [edi + 0x38]
mov ebx, dword [edi + 0x4c]
mov edx, dword [ebp - 0x24]
and ebx, dword [ebp - 0x2c]
mov ecx, dword [edi + 0x40]
mov esi, eax
mov eax, dword [ecx + ebx*8 + 4]
mov dword [ebp - 0x14], esi
cmp eax, esi
je 0x100773fb
cmp edx, dword [eax + 8]
je 0x100773f1
add ebx, ebx
mov ecx, dword [ecx + ebx*4]
cmp eax, ecx
je 0x100773f8
mov eax, dword [eax + 4]
cmp edx, dword [eax + 8]
jne 0x100773e5
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
jmp 0x100773fb
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx + 4]
inc dword [edi + 0x3c]
mov ebx, dword [ebp - 0x20]
mov dword [ebx], ecx
mov dword [ebx + 4], eax
mov dword [ebp - 0x18], eax
mov dword [eax], ebx
mov dword [ecx + 4], ebx
mov edx, dword [edi + 0x40]
mov esi, dword [ebp - 0x2c]
and esi, dword [edi + 0x4c]
lea eax, [edx + esi*8]
mov dword [ebp - 0x10], eax
lea edx, [edx + esi*8]
add edx, 4
mov esi, dword [edx - 4]
cmp esi, dword [edi + 0x38]
je 0x10077446
cmp esi, ecx
mov ecx, dword [ebp - 0x10]
je 0x1007744d
mov ecx, edx
mov eax, dword [ebp - 0x18]
cmp dword [edx], eax
je 0x1007744d
mov eax, dword [ebp - 0x20]
jmp 0x10077452
mov eax, dword [ebp - 0x10]
mov dword [eax], ebx
mov ecx, edx
mov eax, dword [ebp - 0x20]
mov dword [ecx], eax
add eax, 0xc
mov ebx, dword [ebp - 0x28]
mov dword [eax], ebx
mov eax, dword [ebp + 8]
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
push str.unordered_map_set_too_long
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__
push str.invalid_hash_bucket_count
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__
call fcn.102133d0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3