Function at 0x10077490
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 0x100774ba
mov eax, dword [eax + 4]
mov esi, dword [eax + edi*4]
cmp esi, 0xffffffff
jne 0x1007754a
jmp 0x1007755e
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 0x1007755e
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 0x10077542
add esi, esi
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + esi*4]
cmp edx, ecx
je 0x1007755e
mov edx, dword [edx + 4]
cmp eax, dword [edx + 8]
jne 0x10077536
cmp edx, dword [ebp - 0x10]
je 0x1007755e
mov esi, dword [edx + 0xc]
test esi, esi
je 0x1007755e
cmp dword [esi + 0x124], 0
je 0x10077568
mov byte [esi + 0x128], 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.1007aa50
mov ebx, dword [ebp + 0xc]
cmp dword [ebx], edi
jbe 0x1007759f
mov eax, dword [ebx + 4]
cmp dword [eax + edi*4], 0xffffffff
je 0x1007755e
mov ecx, edi
mov dword [eax + edi*4], 0xffffffff
jmp 0x1007755e
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 0x1007755e
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 0x10077622
mov ebx, ecx
jmp 0x1007763b
add edi, edi
mov ebx, ecx
mov edi, dword [ecx + edi*4]
cmp eax, edi
je 0x1007755e
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
cmp esi, edx
jne 0x10077629
cmp eax, dword [ebp - 0x10]
je 0x1007755e
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 0x10077691
cmp edi, eax
jne 0x100776a9
mov esi, dword [eax]
mov dword [ebx + edx*4], esi
jmp 0x100776a9
add esi, esi
inc esi
cmp edi, eax
je 0x100776a0
mov edx, dword [eax + 4]
mov dword [ebx + esi*4], edx
jmp 0x100776a9
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 0x10077561