Function at 0x1001ab60
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov eax, dword [0x1038100c]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp dword [ebp + 8], 0
jle 0x1001ad9e
mov ebx, ecx
lea eax, [ecx + 0x1d6c]
mov dword [ebp - 0x34], eax
lea eax, [ecx + 0x1d4c]
mov dword [ebp - 0x2c], eax
xor esi, esi
mov dword [ebp - 0x20], ecx
mov ecx, dword [ebp - 0x34]
call fcn.10050500
mov edi, eax
push 0x10
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov dword [ebp - 0x38], eax
mov ecx, eax
push dword [ebx + 0x1bf4]
call fcn.100424f0
mov edx, edi
cmp edi, 0x3fff
ja 0x1001ac75
mov eax, dword [ebx + 0x1d44]
cmp eax, edx
ja 0x1001ac63
mov dword [ebp - 0x24], esi
mov edi, eax
add eax, eax
cmp edi, edx
jbe 0x1001abda
mov eax, edi
mov ecx, 4
mov dword [ebp - 0x1c], edx
mul ecx
mov ecx, dword [ebx + 0x1d48]
mov dword [ebp - 0x28], ecx
mov ecx, 0xffffffff
cmovo eax, ecx
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov dword [ebp - 0x30], eax
mov dword [ebx + 0x1d48], eax
mov esi, dword [ebx + 0x1d44]
lea edx, [eax + esi*4]
mov ecx, edi
sub ecx, esi
shl ecx, 2
push ecx
push 0xff
push edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
shl esi, 2
push esi
mov esi, dword [ebp - 0x28]
push esi
push dword [ebp - 0x30]
call sub.VCRUNTIME140.dll_memcpy
mov eax, esi
mov edx, dword [ebp - 0x1c]
add esp, 0xc
mov dword [ebx + 0x1d44], edi
test esi, esi
mov esi, dword [ebp - 0x24]
je 0x1001ac63
push eax
call dword [sym.imp.mozglue.dll_free]
mov edx, dword [ebp - 0x1c]
add esp, 4
lea ecx, [edx*4]
add ecx, dword [ebx + 0x1d48]
jmp 0x1001ad89
mov dword [ebp - 0x24], esi
mov eax, edx
shr eax, 0x18
mov edi, edx
shr edx, 0x10
mov ecx, edi
shr ecx, 8
mov esi, edi
mov ebx, 0xff
and esi, ebx
xor esi, 0x811c9dc5
imul esi, esi, 0x1000193
mov ebx, 0xff
and ecx, ebx
mov ebx, 0xff
xor esi, ecx
imul esi, esi, 0x1000193
and edx, ebx
xor esi, edx
imul esi, esi, 0x1000193
xor esi, eax
imul esi, esi, 0x1000193
mov ebx, dword [ebp - 0x20]
and esi, dword [ebx + 0x1d64]
mov eax, dword [ebx + 0x1d50]
shl edx, 0x10
mov dword [ebp - 0x1c], edi
and edi, 0xff0000ff
or edi, edx
mov edx, dword [ebx + 0x1d58]
shl ecx, 8
or edi, ecx
mov ebx, dword [edx + esi*8]
lea ecx, [esi + esi]
inc ecx
mov dword [ebp - 0x28], ecx
mov ecx, ebx
cmp eax, ebx
je 0x1001ad04
mov esi, dword [ebp - 0x28]
mov esi, dword [edx + esi*4]
mov esi, dword [esi]
jmp 0x1001ad06
mov esi, ebx
cmp ecx, esi
je 0x1001ad17
cmp dword [ecx + 8], edi
je 0x1001ad13
mov ecx, dword [ecx]
jmp 0x1001acf6
cmp ecx, eax
jne 0x1001ad7d
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 + 0x1d54]
cmp ecx, 0xffffffe
je 0x1001adb2
inc ecx
mov dword [edx + 0x1d54], ecx
mov dword [esi + 4], eax
mov dword [ebx], eax
mov eax, dword [edx + 0x1d50]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2c]
lea edx, [ebp - 0x18]
push eax
add eax, 8
push eax
call fcn.10032990
add esp, 8
mov ecx, dword [ebp - 0x18]
add ecx, 0xc
mov ebx, dword [ebp - 0x20]
mov esi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x38]
mov dword [ecx], eax
mov eax, dword [ebp + 0xc]
mov dword [eax + esi*4], edx
inc esi
cmp esi, dword [ebp + 8]
jne 0x1001ab96
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1021e470
add esp, 0x2c
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