Function at 0x1001c570
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x1038100c]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp dword [ecx + 0x38], ebx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], edx
jbe 0x1001c5a5
mov eax, dword [ecx + 0x3c]
mov esi, dword [eax + ebx*4]
cmp esi, 0xffffffff
jne 0x1001c642
jmp 0x1001c64a
mov eax, ebx
shr eax, 0x18
mov dword [ebp - 0x30], eax
mov edx, ebx
shr edx, 0x10
mov esi, ebx
shr esi, 8
mov edi, ebx
mov eax, 0xff
and edi, eax
xor edi, 0x811c9dc5
imul edi, edi, 0x1000193
mov eax, 0xff
and esi, eax
mov eax, 0xff
mov dword [ebp - 0x24], esi
xor edi, esi
imul edi, edi, 0x1000193
and edx, eax
xor edi, edx
imul esi, edi, 0x1000193
xor esi, dword [ebp - 0x30]
imul esi, esi, 0x1000193
and esi, dword [ecx + 0x58]
mov eax, dword [ecx + 0x44]
shl edx, 0x10
and ebx, 0xff0000ff
or ebx, edx
mov edx, dword [ecx + 0x4c]
mov ecx, dword [ebp - 0x24]
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 0x1001c62c
mov esi, dword [ebp - 0x24]
mov esi, dword [edx + esi*4]
mov esi, dword [esi]
jmp 0x1001c62e
mov esi, edi
cmp ecx, esi
je 0x1001c64a
cmp dword [ecx + 8], ebx
je 0x1001c63b
mov ecx, dword [ecx]
jmp 0x1001c61e
cmp ecx, eax
je 0x1001c64a
mov esi, dword [ecx + 0xc]
test esi, esi
jne 0x1001c82b
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x1001c6c1
mov dword [ebp - 0x38], esp
push eax
sub esp, 0x348
mov esi, esp
lea edi, [esi + 8]
mov ecx, edi
push dword [ebp + 8]
call fcn.1000e970
mov dword [esi + 4], ebx
mov ebx, dword [ebp - 0x20]
mov dword [esi], ebx
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x348], eax
push 0x210
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov dword [ebp - 0x30], eax
mov ecx, eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ebx
mov dword [ebp - 0x34], edi
push edi
call fcn.10042fd0
mov dword [ebp - 0x2c], esi
mov ecx, dword [esi + 4]
mov edi, dword [ebp - 0x28]
cmp dword [edi + 0x38], ecx
mov dword [ebp - 0x20], ecx
jbe 0x1001c6c8
mov eax, dword [edi + 0x3c]
cmp dword [eax + ecx*4], 0xffffffff
jne 0x1001c754
jmp 0x1001c75c
xor esi, esi
jmp 0x1001c82b
mov eax, ecx
shr eax, 0x18
mov edx, ecx
shr edx, 0x10
mov ebx, ecx
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 ebx, esi, 0x1000193
mov esi, dword [ebp - 0x28]
and ebx, dword [esi + 0x58]
mov eax, dword [esi + 0x44]
shl edx, 0x10
mov edi, dword [ebp - 0x20]
and edi, 0xff0000ff
or edi, edx
mov edx, dword [esi + 0x4c]
shl ecx, 8
or edi, ecx
mov esi, dword [edx + ebx*8]
lea ecx, [ebx + ebx]
inc ecx
mov dword [ebp - 0x24], ecx
mov ecx, esi
cmp eax, esi
je 0x1001c741
mov ebx, dword [ebp - 0x24]
mov ebx, dword [edx + ebx*4]
mov ebx, dword [ebx]
jmp 0x1001c743
mov ebx, esi
cmp ecx, ebx
je 0x1001c75c
cmp dword [ecx + 8], edi
je 0x1001c750
mov ecx, dword [ecx]
jmp 0x1001c733
cmp ecx, eax
je 0x1001c75c
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x20]
jmp 0x1001c770
mov edi, dword [ebp - 0x28]
lea ecx, [edi + 4]
push dword [ebp - 0x20]
call fcn.100507c0
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + 4]
mov dword [ebp - 0x1c], ecx
cmp ecx, 0x3fff
ja 0x1001c804
mov eax, dword [edi + 0x38]
cmp eax, ecx
ja 0x1001c7fc
mov ebx, eax
add eax, eax
cmp ebx, ecx
jbe 0x1001c786
mov dword [ebp - 0x20], ecx
xor ecx, ecx
dec ecx
mov edx, 4
mov eax, ebx
mul edx
cmovo eax, ecx
mov ecx, dword [edi + 0x3c]
mov dword [ebp - 0x24], ecx
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov dword [ebp - 0x2c], eax
mov dword [edi + 0x3c], eax
mov esi, dword [edi + 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 - 0x2c]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x20]
add esp, 0xc
mov dword [edi + 0x38], ebx
test esi, esi
je 0x1001c7fc
push esi
call dword [sym.imp.mozglue.dll_free]
mov ecx, dword [ebp - 0x20]
add esp, 4
shl ecx, 2
add ecx, dword [edi + 0x3c]
jmp 0x1001c81b
add edi, 0x40
lea eax, [ebp - 0x1c]
lea esi, [ebp - 0x18]
mov ecx, edi
push eax
push esi
call fcn.100320b0
mov ecx, dword [esi]
add ecx, 0xc
mov esi, dword [ebp - 0x30]
mov dword [ecx], esi
mov ecx, dword [ebp - 0x34]
call fcn.1000ed10
mov esp, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1021e470
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret