Function at 0x100283a0
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 0x100283d2
mov eax, dword [ecx + 0x3c]
mov esi, dword [eax + edi*4]
cmp esi, 0xffffffff
jne 0x10028461
jmp 0x10028469
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 0x1002844b
mov esi, dword [ebp - 0x24]
mov esi, dword [edx + esi*4]
mov esi, dword [esi]
jmp 0x1002844d
mov esi, edi
cmp ecx, esi
je 0x10028469
cmp dword [ecx + 8], ebx
je 0x1002845a
mov ecx, dword [ecx]
jmp 0x1002843d
cmp ecx, eax
je 0x10028469
mov esi, dword [ecx + 0xc]
test esi, esi
jne 0x10028601
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x100284ac
mov esi, dword [ebp + 8]
push 0xa8
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov edi, eax
mov ecx, eax
push ebx
push esi
call fcn.10074d70
inc dword [edi + 4]
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x38], ebx
mov dword [ebp - 0x2c], edi
jbe 0x100284b3
mov eax, dword [ecx + 0x3c]
cmp dword [eax + ebx*4], 0xffffffff
jne 0x1002854a
jmp 0x1002853c
xor esi, esi
jmp 0x10028601
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 0x10028529
mov esi, dword [ebp - 0x24]
mov esi, dword [edx + esi*4]
mov esi, dword [esi]
jmp 0x1002852b
mov esi, edi
cmp ecx, esi
je 0x1002853c
cmp dword [ecx + 8], ebx
je 0x10028538
mov ecx, dword [ecx]
jmp 0x1002851b
cmp ecx, eax
jne 0x1002854a
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 0x100285e4
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x38]
cmp eax, edi
ja 0x100285dc
mov ebx, eax
add eax, eax
cmp ebx, edi
jbe 0x10028566
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 0x100285dc
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 0x100285fc
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