Function at 0x10077140
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov ebx, dword [ebp + 8]
mov eax, dword [0x1038100c]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], ecx
add ecx, 4
call fcn.10050500
mov esi, eax
mov dword [ebx], eax
push 0x20
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov edi, eax
mov ecx, eax
push esi
push dword [ebp + 0xc]
call fcn.100783e0
mov dword [ebp - 0x28], edi
inc dword [edi + 4]
cmp esi, 0x3fff
ja 0x1007721d
mov edi, dword [ebp - 0x1c]
mov eax, dword [edi + 0x38]
cmp eax, esi
ja 0x10077212
mov ebx, edi
mov edi, eax
add eax, eax
cmp edi, esi
jbe 0x1007719b
xor ecx, ecx
dec ecx
mov edx, 4
mov eax, edi
mul edx
cmovo eax, ecx
mov ecx, dword [ebx + 0x3c]
mov dword [ebp - 0x24], ecx
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebx + 0x3c], eax
mov ebx, dword [ebx + 0x38]
lea edx, [eax + ebx*4]
mov ecx, edi
sub ecx, ebx
shl ecx, 2
push ecx
push 0xff
push edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
shl ebx, 2
push ebx
mov ebx, dword [ebp - 0x24]
push ebx
push dword [ebp - 0x20]
call sub.VCRUNTIME140.dll_memcpy
mov eax, ebx
add esp, 0xc
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x38], edi
mov edi, ecx
test eax, eax
mov ebx, dword [ebp + 8]
je 0x10077212
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
shl esi, 2
add esi, dword [edi + 0x3c]
jmp 0x10077315
mov ecx, esi
shr ecx, 0x10
mov eax, esi
shr eax, 8
mov edx, 0xff
mov edi, esi
and edi, edx
and eax, edx
and ecx, edx
mov edx, esi
shr edx, 0x18
xor edi, 0x811c9dc5
imul edi, edi, 0x1000193
xor edi, eax
imul edi, edi, 0x1000193
xor edi, ecx
imul edi, edi, 0x1000193
xor edi, edx
mov ebx, dword [ebp - 0x1c]
lea edx, [ebx + 0x40]
mov dword [ebp - 0x20], edx
imul edx, edi, 0x1000193
and edx, dword [ebx + 0x58]
shl ecx, 0x10
and esi, 0xff0000ff
or esi, ecx
mov ecx, dword [ebx + 0x4c]
shl eax, 8
mov edi, esi
or edi, eax
mov ebx, dword [ecx + edx*8]
lea eax, [edx + edx]
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x44]
mov esi, ebx
cmp eax, ebx
je 0x1007729e
mov edx, dword [ebp - 0x24]
mov edx, dword [ecx + edx*4]
mov edx, dword [edx]
jmp 0x100772a0
mov edx, ebx
cmp esi, edx
je 0x100772b1
cmp dword [esi + 8], edi
je 0x100772ad
mov esi, dword [esi]
jmp 0x10077290
cmp esi, eax
jne 0x1007730f
mov esi, dword [eax]
mov ebx, dword [esi + 4]
push 0x10
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
test esi, esi
mov ecx, esi
cmove ecx, eax
mov dword [eax], ecx
mov ecx, ebx
cmove ecx, eax
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
mov dword [eax + 0xc], 0
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + 0x48]
cmp ecx, 0xffffffe
je 0x10077330
inc ecx
mov dword [edx + 0x48], ecx
mov dword [esi + 4], eax
mov dword [ebx], eax
mov eax, dword [edx + 0x44]
mov eax, dword [eax]
lea esi, [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov edx, esi
push eax
add eax, 8
push eax
call fcn.10032990
add esp, 8
mov esi, dword [esi]
add esi, 0xc
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x28]
mov dword [esi], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1021e470
mov eax, ebx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret 8
push str.list_T__too_long
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__
int3