Function at 0x1001d500
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 0x1001d532
mov eax, dword [ecx + 0x3c]
mov esi, dword [eax + edi*4]
cmp esi, 0xffffffff
jne 0x1001d5c1
jmp 0x1001d5c9
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 0x1001d5ab
mov esi, dword [ebp - 0x24]
mov esi, dword [edx + esi*4]
mov esi, dword [esi]
jmp 0x1001d5ad
mov esi, edi
cmp ecx, esi
je 0x1001d5c9
cmp dword [ecx + 8], ebx
je 0x1001d5ba
mov ecx, dword [ecx]
jmp 0x1001d59d
cmp ecx, eax
je 0x1001d5c9
mov esi, dword [ecx + 0xc]
test esi, esi
jne 0x1001d761
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x1001d60c
mov esi, dword [ebp + 8]
push 0x88
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov edi, eax
mov ecx, eax
push ebx
push esi
call fcn.10072f40
inc dword [edi + 4]
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x38], ebx
mov dword [ebp - 0x2c], edi
jbe 0x1001d613
mov eax, dword [ecx + 0x3c]
cmp dword [eax + ebx*4], 0xffffffff
jne 0x1001d6aa
jmp 0x1001d69c
xor esi, esi
jmp 0x1001d761
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 0x1001d689
mov esi, dword [ebp - 0x24]
mov esi, dword [edx + esi*4]
mov esi, dword [esi]
jmp 0x1001d68b
mov esi, edi
cmp ecx, esi
je 0x1001d69c
cmp dword [ecx + 8], ebx
je 0x1001d698
mov ecx, dword [ecx]
jmp 0x1001d67b
cmp ecx, eax
jne 0x1001d6aa
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 0x1001d744
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x38]
cmp eax, edi
ja 0x1001d73c
mov ebx, eax
add eax, eax
cmp ebx, edi
jbe 0x1001d6c6
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 0x1001d73c
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 0x1001d75c
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