Function at 0x10077c20
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
cmp dword [eax], edi
mov dword [ebp - 0x18], ecx
jbe 0x10077c4a
mov eax, dword [eax + 4]
mov esi, dword [eax + edi*4]
cmp esi, 0xffffffff
jne 0x10077cda
jmp 0x10077cee
mov ecx, edi
shr ecx, 0x18
mov ebx, edi
shr ebx, 0x10
mov eax, edi
shr eax, 8
mov edx, 0xff
and edi, edx
and eax, edx
and ebx, edx
mov edx, edi
xor edx, 0x811c9dc5
imul edx, edx, 0x1000193
xor edx, eax
imul edx, edx, 0x1000193
xor edx, ebx
imul edx, edx, 0x1000193
xor edx, ecx
imul esi, edx, 0x1000193
mov edx, dword [ebp + 0xc]
and esi, dword [edx + 0x20]
mov ecx, dword [edx + 0xc]
mov edx, dword [edx + 0x14]
mov dword [ebp - 0x14], edx
mov edx, dword [edx + esi*8 + 4]
mov dword [ebp - 0x10], ecx
cmp edx, ecx
je 0x10077cee
mov ecx, dword [ebp + 0x10]
and ecx, 0xff000000
shl ebx, 0x10
or ebx, ecx
shl eax, 8
or eax, ebx
or eax, edi
cmp eax, dword [edx + 8]
je 0x10077cd2
add esi, esi
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + esi*4]
cmp edx, ecx
je 0x10077cee
mov edx, dword [edx + 4]
cmp eax, dword [edx + 8]
jne 0x10077cc6
cmp edx, dword [ebp - 0x10]
je 0x10077cee
mov esi, dword [edx + 0xc]
test esi, esi
je 0x10077cee
cmp dword [esi + 0x160], 0
je 0x10077cf8
mov byte [esi + 0x15c], 1
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
add ecx, 4
mov ebx, dword [ebp + 0x10]
push ebx
call fcn.1004ae40
mov ecx, esi
push edi
mov edi, ebx
call fcn.10057140
mov ebx, dword [ebp + 0xc]
cmp dword [ebx], edi
jbe 0x10077d2f
mov eax, dword [ebx + 4]
cmp dword [eax + edi*4], 0xffffffff
je 0x10077cee
mov ecx, edi
mov dword [eax + edi*4], 0xffffffff
jmp 0x10077cee
mov eax, edi
shr eax, 0x18
mov edx, edi
shr edx, 0x10
mov esi, edi
shr esi, 8
mov ecx, 0xff
and edi, ecx
and esi, ecx
and edx, ecx
mov dword [ebp - 0x18], edi
mov ecx, edi
xor ecx, 0x811c9dc5
imul ecx, ecx, 0x1000193
xor ecx, esi
imul ecx, ecx, 0x1000193
xor ecx, edx
imul ecx, ecx, 0x1000193
xor ecx, eax
imul edi, ecx, 0x1000193
mov eax, dword [ebx + 0x20]
mov dword [ebp - 0x14], eax
and edi, eax
mov ecx, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x14]
mov eax, dword [ebx + edi*8 + 4]
mov dword [ebp - 0x10], ecx
cmp eax, ecx
je 0x10077cee
mov ecx, ebx
mov ebx, dword [ebp + 0x10]
and ebx, 0xff000000
shl edx, 0x10
or edx, ebx
shl esi, 8
or esi, edx
add esi, dword [ebp - 0x18]
mov edx, dword [eax + 8]
cmp esi, edx
jne 0x10077db2
mov ebx, ecx
jmp 0x10077dcb
add edi, edi
mov ebx, ecx
mov edi, dword [ecx + edi*4]
cmp eax, edi
je 0x10077cee
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
cmp esi, edx
jne 0x10077db9
cmp eax, dword [ebp - 0x10]
je 0x10077cee
movzx edx, dl
xor edx, 0x811c9dc5
imul edx, edx, 0x1000193
movzx esi, byte [eax + 9]
xor esi, edx
imul edx, esi, 0x1000193
movzx esi, byte [eax + 0xa]
xor esi, edx
imul edx, esi, 0x1000193
movzx esi, byte [eax + 0xb]
xor esi, edx
imul esi, esi, 0x1000193
and esi, dword [ebp - 0x14]
lea edx, [esi + esi]
mov edi, dword [ebx + esi*8]
cmp dword [ebx + edx*4 + 4], eax
je 0x10077e21
cmp edi, eax
jne 0x10077e39
mov esi, dword [eax]
mov dword [ebx + edx*4], esi
jmp 0x10077e39
add esi, esi
inc esi
cmp edi, eax
je 0x10077e30
mov edx, dword [eax + 4]
mov dword [ebx + esi*4], edx
jmp 0x10077e39
mov ecx, dword [ebp - 0x10]
mov dword [ebx + edx*4], ecx
mov dword [ebx + esi*4], ecx
mov ecx, dword [eax]
mov edx, dword [ebp + 0xc]
dec dword [edx + 0x10]
mov edx, dword [eax + 4]
mov dword [edx], ecx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 0x10
jmp 0x10077cf1