Function at 0x10028030
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov dword [ebp - 0x10], ecx
cmp dword [ebp + 8], 0
jle 0x100282f4
mov eax, dword [ebp - 0x10]
lea ecx, [eax + 0x1f64]
mov dword [ebp - 0x38], ecx
lea ecx, [eax + 8]
mov dword [ebp - 0x30], ecx
add eax, 0x1fe0
mov dword [ebp - 0x2c], eax
xor edi, edi
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x100282ea
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x20]
cmp dword [edx + 0x1f3c], ecx
jbe 0x100280a2
mov eax, dword [edx + 0x1f40]
mov ebx, dword [eax + ecx*4]
cmp ebx, 0xffffffff
je 0x100282ea
mov ecx, dword [ebp - 0x20]
mov dword [eax + ecx*4], 0xffffffff
jmp 0x10028205
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x14], eax
mov esi, ecx
shr esi, 0x10
mov ebx, ecx
shr ebx, 8
mov eax, 0xff
and ecx, eax
mov dword [ebp - 0x18], ecx
xor ecx, 0x811c9dc5
imul ecx, ecx, 0x1000193
and ebx, eax
xor ecx, ebx
imul ecx, ecx, 0x1000193
and esi, eax
xor ecx, esi
imul ecx, ecx, 0x1000193
xor ecx, dword [ebp - 0x14]
imul ecx, ecx, 0x1000193
mov eax, dword [edx + 0x1f5c]
mov dword [ebp - 0x24], eax
and ecx, eax
mov dword [ebp - 0x14], edi
mov edi, dword [edx + 0x1f48]
mov eax, dword [edx + 0x1f50]
mov dword [ebp - 0x1c], eax
mov eax, dword [eax + ecx*8 + 4]
mov dword [ebp - 0x34], edi
cmp eax, edi
mov edi, dword [ebp - 0x14]
je 0x100282ea
mov edx, dword [ebp - 0x20]
and edx, 0xff000000
shl esi, 0x10
or esi, edx
shl ebx, 8
or ebx, esi
add ebx, dword [ebp - 0x18]
mov edx, dword [eax + 8]
cmp ebx, edx
je 0x1002814d
add ecx, ecx
mov edx, dword [ebp - 0x1c]
mov ecx, dword [edx + ecx*4]
cmp eax, ecx
je 0x100282ea
mov eax, dword [eax + 4]
mov edx, dword [eax + 8]
cmp ebx, edx
jne 0x1002813b
cmp eax, dword [ebp - 0x34]
je 0x100282ea
mov ebx, dword [eax + 0xc]
movzx ecx, dl
xor ecx, 0x811c9dc5
imul ecx, ecx, 0x1000193
movzx edx, byte [eax + 9]
xor edx, ecx
imul ecx, edx, 0x1000193
movzx edx, byte [eax + 0xa]
xor edx, ecx
imul ecx, edx, 0x1000193
movzx edx, byte [eax + 0xb]
xor edx, ecx
imul edx, edx, 0x1000193
and edx, dword [ebp - 0x24]
lea ecx, [edx + edx]
mov dword [ebp - 0x18], ecx
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ecx + edx*8]
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x18]
cmp dword [ecx + esi*4 + 4], eax
je 0x100281b9
cmp dword [ebp - 0x24], eax
jne 0x100281e5
mov edx, dword [eax]
mov ecx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov dword [ecx + esi*4], edx
jmp 0x100281e5
lea ecx, [edx + edx]
inc ecx
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x24], eax
je 0x100281d3
mov ecx, dword [eax + 4]
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x28]
mov dword [edx + esi*4], ecx
jmp 0x100281e5
mov esi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x18]
mov dword [esi + ecx*4], edx
mov ecx, dword [ebp - 0x28]
mov dword [esi + ecx*4], edx
mov ecx, dword [eax]
mov edx, dword [ebp - 0x10]
dec dword [edx + 0x1f4c]
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, 4
test ebx, ebx
je 0x100282df
mov ecx, dword [ebp - 0x30]
push dword [ebp - 0x20]
push dword [ebp - 0x10]
call fcn.100875d0
test al, al
je 0x100282b4
mov dword [ebp - 0x14], ebx
xor ebx, ebx
mov esi, dword [ebp - 0x10]
mov ecx, esi
xor edx, edx
call fcn.100163c0
mov ecx, dword [ebp - 0x30]
push eax
push esi
call fcn.10087540
mov eax, dword [esi + 0x1834]
test eax, eax
je 0x10028258
cmp byte [eax + 0x34], 0
je 0x10028256
mov bl, byte [eax + 0x36]
xor bl, 1
jmp 0x10028258
xor ebx, ebx
mov byte [esi + 0x200c], bl
xor eax, eax
inc eax
mov dword [esi + 0x2000], eax
mov dword [esi + 0x2004], eax
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
call fcn.1002ce80
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 0x1834]
test eax, eax
je 0x10028292
cmp byte [eax + 0x34], 0
je 0x10028292
mov al, byte [eax + 0x36]
xor al, 1
jmp 0x10028294
xor eax, eax
mov ebx, dword [ebp - 0x14]
mov byte [edx + 0x200c], al
xor eax, eax
inc eax
mov dword [edx + 0x2000], eax
mov dword [edx + 0x2004], eax
mov ecx, dword [ebp - 0x2c]
call fcn.1002ce80
dec dword [ebx + 4]
jne 0x100282df
mov eax, dword [ebx]
mov esi, dword [eax]
mov ecx, esi
call dword [section..00cfg]
mov ecx, ebx
push dword [ebp - 0x10]
call esi
mov eax, dword [ebx]
mov esi, dword [eax + 4]
mov ecx, esi
call dword [section..00cfg]
mov ecx, ebx
push 1
call esi
mov ecx, dword [ebp - 0x38]
push dword [ebp - 0x20]
call fcn.1004ae40
inc edi
cmp edi, dword [ebp + 8]
jne 0x10028062
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret 8