Function at 0x1001c2c0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
mov ebx, dword [ebp + 0xc]
mov al, byte [ebp + 8]
mov edx, dword [0x1038100c]
xor edx, ebp
mov dword [ebp - 0x10], edx
movzx eax, al
test ebx, ebx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], ecx
je 0x1001c312
mov edx, dword [ecx + 0x127c]
mov eax, dword [ecx + 0x1bf4]
mov dword [ebp - 0x28], eax
cmp dword [edx + 0x38], ebx
mov dword [ebp - 0x20], edx
jbe 0x1001c31e
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + ebx*4]
cmp eax, 0xffffffff
jne 0x1001c3aa
jmp 0x1001c3b2
mov eax, dword [ecx + eax*8 + 0x1cf0]
jmp 0x1001c541
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 0x1001c394
mov esi, dword [ebp - 0x24]
mov esi, dword [edx + esi*4]
mov esi, dword [esi]
jmp 0x1001c396
mov esi, edi
cmp ecx, esi
je 0x1001c3b2
cmp dword [ecx + 8], ebx
je 0x1001c3a3
mov ecx, dword [ecx]
jmp 0x1001c386
cmp ecx, eax
je 0x1001c3b2
mov eax, dword [ecx + 0xc]
test eax, eax
jne 0x1001c541
push 0x200
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov esi, eax
mov ecx, eax
push dword [ebp - 0x2c]
mov edi, dword [ebp + 0xc]
push edi
push dword [ebp - 0x28]
call fcn.100863f0
mov dword [ebp - 0x28], esi
inc dword [esi + 4]
mov ecx, dword [ebp - 0x20]
cmp dword [ecx + 0x38], edi
jbe 0x1001c3f3
mov eax, dword [ecx + 0x3c]
cmp dword [eax + edi*4], 0xffffffff
jne 0x1001c48d
jmp 0x1001c47f
mov eax, edi
shr eax, 0x18
mov edx, edi
shr edx, 0x10
mov ecx, edi
shr ecx, 8
mov esi, 0xff
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 - 0x20]
and ebx, dword [esi + 0x58]
mov eax, dword [esi + 0x44]
mov edi, esi
shl edx, 0x10
mov esi, dword [ebp + 0xc]
and esi, 0xff0000ff
or esi, edx
mov edx, dword [edi + 0x4c]
shl ecx, 8
or esi, ecx
mov edi, dword [edx + ebx*8]
lea ecx, [ebx + ebx]
inc ecx
mov dword [ebp - 0x24], ecx
mov ecx, edi
cmp eax, edi
je 0x1001c46c
mov ebx, dword [ebp - 0x24]
mov ebx, dword [edx + ebx*4]
mov ebx, dword [ebx]
jmp 0x1001c46e
mov ebx, edi
cmp ecx, ebx
je 0x1001c47f
cmp dword [ecx + 8], esi
je 0x1001c47b
mov ecx, dword [ecx]
jmp 0x1001c45e
cmp ecx, eax
jne 0x1001c48d
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 0x1001c524
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx + 0x38]
cmp eax, edi
ja 0x1001c51c
mov esi, eax
add eax, eax
cmp esi, edi
jbe 0x1001c4a9
xor ecx, ecx
dec ecx
mov edx, 4
mov eax, esi
mul edx
cmovo eax, ecx
mov edi, dword [ebp - 0x20]
mov ebx, dword [edi + 0x3c]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [edi + 0x3c], eax
mov edi, dword [edi + 0x38]
lea edx, [eax + edi*4]
mov ecx, esi
sub ecx, edi
shl ecx, 2
push ecx
push 0xff
push edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
shl edi, 2
push edi
mov edi, dword [ebp + 0xc]
push ebx
push dword [ebp - 0x24]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x20]
add esp, 0xc
mov dword [ecx + 0x38], esi
test ebx, ebx
je 0x1001c51c
push ebx
call dword [sym.imp.mozglue.dll_free]
mov ecx, dword [ebp - 0x20]
add esp, 4
shl edi, 2
add edi, dword [ecx + 0x3c]
jmp 0x1001c53c
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 eax, dword [ebp - 0x28]
mov dword [edi], eax
mov esi, dword [ebp - 0x30]
lea ecx, [esi + 8]
push eax
push dword [ebp - 0x2c]
push esi
call fcn.1007f340
mov dword [esi + 0x1f18], 1
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1021e470
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret 8