Function at 0x1001ccc0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov edi, dword [ebp + 0xc]
mov eax, dword [0x1038100c]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp dword [ecx + 0x38], edi
mov dword [ebp - 0x20], ecx
jbe 0x1001ccf2
mov eax, dword [ecx + 0x3c]
mov esi, dword [eax + edi*4]
cmp esi, 0xffffffff
jne 0x1001cd81
jmp 0x1001cd89
mov eax, edi
shr eax, 0x18
mov edx, edi
shr edx, 0x10
mov ecx, edi
shr ecx, 8
mov ebx, 0xff
and edi, ebx
xor edi, 0x811c9dc5
imul edi, edi, 0x1000193
and ecx, ebx
xor edi, ecx
imul edi, edi, 0x1000193
and edx, ebx
xor edi, edx
imul esi, edi, 0x1000193
xor esi, eax
imul esi, esi, 0x1000193
mov ebx, dword [ebp - 0x20]
and esi, dword [ebx + 0x58]
mov eax, dword [ebx + 0x44]
mov edi, ebx
shl edx, 0x10
mov ebx, dword [ebp + 0xc]
and ebx, 0xff0000ff
or ebx, edx
mov edx, dword [edi + 0x4c]
shl ecx, 8
or ebx, ecx
mov edi, dword [edx + esi*8]
lea ecx, [esi + esi]
inc ecx
mov dword [ebp - 0x24], ecx
mov ecx, edi
cmp eax, edi
je 0x1001cd6b
mov esi, dword [ebp - 0x24]
mov esi, dword [edx + esi*4]
mov esi, dword [esi]
jmp 0x1001cd6d
mov esi, edi
cmp ecx, esi
je 0x1001cd89
cmp dword [ecx + 8], ebx
je 0x1001cd7a
mov ecx, dword [ecx]
jmp 0x1001cd5d
cmp ecx, eax
je 0x1001cd89
mov esi, dword [ecx + 0xc]
test esi, esi
jne 0x1001cf21
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x1001cdcc
mov esi, dword [ebp + 8]
push 0xb0
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov edi, eax
mov ecx, eax
push ebx
push esi
call fcn.10077fc0
inc dword [edi + 4]
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x38], ebx
mov dword [ebp - 0x2c], edi
jbe 0x1001cdd3
mov eax, dword [ecx + 0x3c]
cmp dword [eax + ebx*4], 0xffffffff
jne 0x1001ce6a
jmp 0x1001ce5c
xor esi, esi
jmp 0x1001cf21
mov eax, ebx
shr eax, 0x18
mov edx, ebx
shr edx, 0x10
mov ecx, ebx
shr ecx, 8
mov esi, 0xff
mov edi, ebx
and edi, esi
xor edi, 0x811c9dc5
imul edi, edi, 0x1000193
and ecx, esi
xor edi, ecx
imul edi, edi, 0x1000193
and edx, esi
xor edi, edx
imul esi, edi, 0x1000193
xor esi, eax
imul esi, esi, 0x1000193
mov edi, dword [ebp - 0x20]
and esi, dword [edi + 0x58]
mov eax, dword [edi + 0x44]
shl edx, 0x10
and ebx, 0xff0000ff
or ebx, edx
mov edx, dword [edi + 0x4c]
shl ecx, 8
or ebx, ecx
mov edi, dword [edx + esi*8]
lea ecx, [esi + esi]
inc ecx
mov dword [ebp - 0x24], ecx
mov ecx, edi
cmp eax, edi
je 0x1001ce49
mov esi, dword [ebp - 0x24]
mov esi, dword [edx + esi*4]
mov esi, dword [esi]
jmp 0x1001ce4b
mov esi, edi
cmp ecx, esi
je 0x1001ce5c
cmp dword [ecx + 8], ebx
je 0x1001ce58
mov ecx, dword [ecx]
jmp 0x1001ce3b
cmp ecx, eax
jne 0x1001ce6a
mov eax, dword [ebp - 0x20]
lea ecx, [eax + 4]
push dword [ebp + 0xc]
call fcn.100507c0
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x1c], edi
cmp edi, 0x3fff
ja 0x1001cf04
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x38]
cmp eax, edi
ja 0x1001cefc
mov ebx, eax
add eax, eax
cmp ebx, edi
jbe 0x1001ce86
xor ecx, ecx
dec ecx
mov edx, 4
mov eax, ebx
mul edx
cmovo eax, ecx
mov esi, dword [ebp - 0x20]
mov ecx, dword [esi + 0x3c]
mov dword [ebp - 0x24], ecx
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov dword [ebp - 0x28], eax
mov dword [esi + 0x3c], eax
mov esi, dword [esi + 0x38]
lea edx, [eax + esi*4]
mov ecx, ebx
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 - 0x24]
push esi
push dword [ebp - 0x28]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x20]
add esp, 0xc
mov dword [ecx + 0x38], ebx
test esi, esi
je 0x1001cefc
push esi
call dword [sym.imp.mozglue.dll_free]
mov ecx, dword [ebp - 0x20]
add esp, 4
shl edi, 2
add edi, dword [ecx + 0x3c]
jmp 0x1001cf1c
mov ecx, dword [ebp - 0x20]
add ecx, 0x40
lea eax, [ebp - 0x1c]
lea esi, [ebp - 0x18]
push eax
push esi
call fcn.100320b0
mov edi, dword [esi]
add edi, 0xc
mov esi, dword [ebp - 0x2c]
mov dword [edi], esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1021e470
mov eax, esi
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret 8