Function at 0x10075c70
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov edi, ecx
mov ebx, dword [ebp + 8]
mov eax, dword [0x1038100c]
xor eax, ebp
mov dword [ebp - 0x10], eax
movzx eax, byte [ebp + 0x14]
mov dword [ebp - 0x1c], eax
add ecx, 4
call fcn.10050500
mov esi, eax
mov dword [ebx], eax
push 0x168
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ebx, eax
mov ecx, eax
push esi
push dword [ebp - 0x1c]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push edi
call fcn.100784f0
cmp esi, 0x3fff
ja 0x10075d60
mov eax, dword [edi + 0x38]
cmp eax, esi
ja 0x10075d55
mov ecx, edi
mov dword [ebp - 0x28], ebx
mov edi, eax
add eax, eax
cmp edi, esi
jbe 0x10075cd9
xor ebx, ebx
dec ebx
mov edx, 4
mov eax, edi
mul edx
cmovo eax, ebx
mov ebx, ecx
mov ecx, dword [ecx + 0x3c]
mov dword [ebp - 0x1c], ecx
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], ebx
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 - 0x1c]
push ebx
push dword [ebp - 0x24]
call sub.VCRUNTIME140.dll_memcpy
mov eax, ebx
add esp, 0xc
mov ecx, dword [ebp - 0x20]
mov dword [ecx + 0x38], edi
mov edi, ecx
test eax, eax
mov ebx, dword [ebp - 0x28]
je 0x10075d55
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
shl esi, 2
add esi, dword [edi + 0x3c]
jmp 0x10075e5d
mov dword [ebp - 0x28], ebx
mov ecx, esi
shr ecx, 0x10
mov eax, esi
shr eax, 8
mov edx, 0xff
mov ebx, edi
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
lea edx, [ebx + 0x40]
mov dword [ebp - 0x24], edx
imul edx, edi, 0x1000193
mov dword [ebp - 0x20], ebx
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 - 0x1c], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x44]
mov esi, ebx
cmp eax, ebx
je 0x10075de6
mov edx, dword [ebp - 0x1c]
mov edx, dword [ecx + edx*4]
mov edx, dword [edx]
jmp 0x10075de8
mov edx, ebx
cmp esi, edx
je 0x10075df9
cmp dword [esi + 8], edi
je 0x10075df5
mov esi, dword [esi]
jmp 0x10075dd8
cmp esi, eax
jne 0x10075e57
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 - 0x20]
mov ecx, dword [edx + 0x48]
cmp ecx, 0xffffffe
je 0x10075e76
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 - 0x24]
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 - 0x28]
mov dword [esi], ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1021e470
mov eax, dword [ebp + 8]
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
push str.list_T__too_long
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const__