Function at 0x100288e0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov ebx, ecx
mov edx, dword [ebp + 8]
mov eax, dword [0x1038000c]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov edi, dword [ecx + 0x1368]
cmp dword [edi + 0x54], edx
jbe 0x1002890e
mov eax, dword [edi + 0x58]
mov esi, dword [eax + edx*4]
jmp 0x100289b2
mov dword [ebp - 0x2c], ebx
mov ebx, edx
shr ebx, 0x10
mov ecx, edx
shr ecx, 8
mov esi, 0xff
mov eax, edx
and eax, esi
and ecx, esi
and ebx, esi
mov esi, edx
shr esi, 0x18
mov dword [ebp - 0x34], eax
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor eax, ecx
imul eax, eax, 0x1000193
xor eax, ebx
imul eax, eax, 0x1000193
xor eax, esi
imul esi, eax, 0x1000193
and esi, dword [edi + 0x74]
mov eax, dword [edi + 0x60]
mov edi, dword [edi + 0x68]
mov dword [ebp - 0x38], edi
mov edi, dword [edi + esi*8 + 4]
mov dword [ebp - 0x30], eax
cmp edi, eax
je 0x100289a2
and edx, 0xff000000
shl ebx, 0x10
or ebx, edx
shl ecx, 8
or ecx, ebx
add ecx, dword [ebp - 0x34]
cmp ecx, dword [edi + 8]
je 0x100289a4
add esi, esi
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + esi*4]
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
cmp edi, eax
je 0x10028b2e
mov edi, dword [edi + 4]
cmp ecx, dword [edi + 8]
jne 0x10028990
jmp 0x100289aa
xor edi, edi
mov ebx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
test edi, edi
cmovne edx, edi
mov esi, dword [edx + 0xc]
cmp dword [esi + 0x158], 0
je 0x100289c3
mov ecx, esi
push ebx
call fcn.100599c0
mov ebx, dword [ebp + 0xc]
cmp byte [esi + 0x154], 0
je 0x10028b02
test ebx, ebx
jle 0x10028b1a
add esi, 0x40
xor ecx, ecx
mov dword [ebp - 0x2c], esi
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + ecx*4]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
push edi
mov ebx, ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov esi, eax
cmp eax, 0x10
jb 0x10028a4b
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], ebx
test esi, esi
js 0x10028b35
mov edi, esi
or edi, 0xf
cmp edi, 0x17
mov eax, 0x16
cmovb edi, eax
cmp edi, 0xfff
jb 0x10028a85
lea eax, [edi + 0x24]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
lea ebx, [eax + 0x23]
and ebx, 0xffffffe0
mov dword [ebx - 4], eax
jmp 0x10028a94
mov dword [ebp - 0x18], esi
push esi
push edi
lea eax, [ebp - 0x28]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebp + esi - 0x28], 0
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x28]
push eax
call fcn.10056240
mov ecx, dword [ebp + 0x14]
mov dword [ecx + ebx*4], eax
cmp edi, 0x10
mov ecx, ebx
mov ebx, dword [ebp + 0xc]
jb 0x10028af7
mov ebx, dword [ebp - 0x28]
jmp 0x10028ac5
lea eax, [edi + 1]
push eax
call dword [sym.imp.mozglue.dll_moz_xmalloc]
add esp, 4
mov ebx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], edi
push esi
push dword [ebp - 0x34]
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [ebx + esi], 0
mov dword [ebp - 0x28], ebx
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x28]
push eax
call fcn.10056240
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x30]
mov dword [ecx + edx*4], eax
mov ecx, edx
add edi, 0xfffff001
cmp edi, 0xffffefff
ja 0x10028ae6
mov eax, dword [ebx - 4]
add ebx, 0xfffffffc
sub ebx, eax
cmp ebx, 0x20
jae 0x10028b3a
mov edi, ecx
mov ebx, eax
jmp 0x10028ae8
mov edi, ecx
push ebx
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov ebx, dword [ebp + 0xc]
mov ecx, edi
inc ecx
cmp ebx, ecx
jne 0x100289e3
jmp 0x10028b1a
test ebx, ebx
jle 0x10028b1a
shl ebx, 2
push ebx
push 0xff
push dword [ebp + 0x14]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10212780
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
xor edi, edi
jmp 0x100289aa
call fcn.102136b0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]