Function at 0x1005afa0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [ebp + 8]
sub esp, 0x2c
push ebx
push esi
push edi
test eax, eax
je 0x1005b547
cmp dword [0x100fe788], 0
mov eax, dword [eax + 0x34]
mov edi, dword [ebp + 0xc]
mov ebx, dword [eax + 0x28]
mov dword [esp + 0xc], ebx
je 0x1005b07c
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x11c]
call eax
mov edx, ebx
mov ecx, ebx
mov esi, ebx
shr ecx, 0x10
shr edx, 8
shr esi, 0x18
mov dword [esp + 0x10], ecx
cmp al, 1
je 0x1005b000
cmp al, 2
je 0x1005b000
cmp al, 3
jne 0x1005b07c
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, dl
mov edx, dword [0x100fe78c]
xor ecx, eax
mov eax, dword [esp + 0x10]
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, esi
imul ecx, eax, 0x1000193
and ecx, dword [0x100fe798]
mov eax, dword [edx + ecx*8]
add ecx, ecx
mov esi, dword [edx + ecx*4]
lea edi, [edx + ecx*4]
mov edx, dword [0x100fe784]
nop dword [eax]
cmp esi, edx
jne 0x1005b058
mov ecx, edx
jmp 0x1005b05d
mov ecx, dword [edi + 4]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x1005b079
cmp dword [eax + 8], ebx
je 0x1005b06a
mov eax, dword [eax]
jmp 0x1005b050
cmp eax, edx
je 0x1005b079
mov al, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov edi, dword [ebp + 0xc]
cmp dword [0x100fe988], 0
je 0x1005b2a8
movsx edx, word [edi + 0x84]
mov eax, edx
mov dword [esp + 0x10], edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
mov esi, dword [esp + 0x10]
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
mov edx, dword [0x100fe98c]
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul ecx, ecx, 0x1000193
and ecx, dword [0x100fe998]
mov eax, dword [edx + ecx*8]
add ecx, ecx
mov edi, dword [edx + ecx*4]
add edx, 4
lea ecx, [edx + ecx*4]
mov edx, dword [0x100fe984]
mov dword [esp + 0x14], ecx
cmp edi, edx
jne 0x1005b0ff
mov ecx, edx
jmp 0x1005b103
mov ecx, dword [ecx]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x1005b1a4
cmp dword [eax + 8], esi
je 0x1005b118
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
jmp 0x1005b0f7
cmp eax, edx
je 0x1005b1a4
add eax, 0xc
lea ecx, [esp + 0x18]
push eax
call fcn.10015440
movzx eax, bl
xor eax, 0x811c9dc5
mov edi, dword [esp + 0x1c]
imul ecx, eax, 0x1000193
movzx eax, bh
xor ecx, eax
movzx eax, byte [esp + 0xe]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esp + 0xf]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [esp + 0x24]
and eax, dword [esp + 0x30]
mov esi, dword [ecx + eax*8]
add eax, eax
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
cmp edx, edi
jne 0x1005b17f
mov eax, edi
jmp 0x1005b184
mov eax, dword [ecx + 4]
mov eax, dword [eax]
cmp esi, eax
je 0x1005b191
cmp dword [esi + 8], ebx
je 0x1005b193
mov esi, dword [esi]
jmp 0x1005b177
mov esi, edi
lea ecx, [esp + 0x18]
call fcn.1000def0
cmp esi, edi
jne 0x1005b29d
mov edx, dword [ebp + 0xc]
mov edi, dword [0x100fe98c]
movzx eax, word [edx + 0x78]
movzx esi, word [edx + 0x78]
mov edx, dword [0x100fe98c]
movzx eax, al
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, esi
shr eax, 8
xor ecx, eax
imul ecx, ecx, 0x3ee6b34b
and ecx, dword [0x100fe998]
mov eax, dword [edi + ecx*8]
add ecx, ecx
add edx, 4
mov edi, dword [edi + ecx*4]
lea ecx, [edx + ecx*4]
mov edx, dword [0x100fe984]
mov dword [esp + 0x14], ecx
cmp edi, edx
jne 0x1005b1fc
mov ecx, edx
jmp 0x1005b200
mov ecx, dword [ecx]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x1005b2a8
cmp dword [eax + 8], esi
je 0x1005b215
mov eax, dword [eax]
mov ecx, dword [esp + 0x14]
jmp 0x1005b1f4
cmp eax, edx
je 0x1005b2a8
add eax, 0xc
lea ecx, [esp + 0x18]
push eax
call fcn.10015440
movzx eax, bl
xor eax, 0x811c9dc5
mov edi, dword [esp + 0x1c]
imul ecx, eax, 0x1000193
movzx eax, bh
xor ecx, eax
movzx eax, byte [esp + 0xe]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esp + 0xf]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [esp + 0x24]
and eax, dword [esp + 0x30]
mov esi, dword [ecx + eax*8]
add eax, eax
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
cmp edx, edi
jne 0x1005b27c
mov eax, edi
jmp 0x1005b281
mov eax, dword [ecx + 4]
mov eax, dword [eax]
cmp esi, eax
je 0x1005b28e
cmp dword [esi + 8], ebx
je 0x1005b290
mov esi, dword [esi]
jmp 0x1005b274
mov esi, edi
lea ecx, [esp + 0x18]
call fcn.1000def0
cmp esi, edi
je 0x1005b2a8
mov al, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [0x100fe968], 0
je 0x1005b3f2
mov edx, dword [0x100fe96c]
movzx eax, bl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, bh
xor ecx, eax
movzx eax, byte [esp + 0xe]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esp + 0xf]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul ecx, ecx, 0x1000193
and ecx, dword [0x100fe978]
mov eax, dword [edx + ecx*8]
add ecx, ecx
mov esi, dword [edx + ecx*4]
lea edi, [edx + ecx*4]
mov edx, dword [0x100fe964]
cmp esi, edx
jne 0x1005b30d
mov ecx, edx
jmp 0x1005b312
mov ecx, dword [edi + 4]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x1005b3f2
cmp dword [eax + 8], ebx
je 0x1005b323
mov eax, dword [eax]
jmp 0x1005b305
cmp eax, edx
je 0x1005b3f2
mov ecx, dword [ebp + 0xc]
add eax, 0xc
push eax
movsx ebx, word [ecx + 0x84]
movzx ecx, word [ecx + 0x78]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x1c]
call fcn.10015440
movzx eax, bl
xor eax, 0x811c9dc5
mov edx, dword [esp + 0x24]
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
mov esi, dword [esp + 0x1c]
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul ecx, ecx, 0x1000193
and ecx, dword [esp + 0x30]
mov eax, dword [edx + ecx*8]
add ecx, ecx
mov edi, dword [edx + ecx*4]
lea edx, [edx + ecx*4]
nop dword [eax]
cmp edi, esi
jne 0x1005b3a8
mov ecx, esi
jmp 0x1005b3ad
mov ecx, dword [edx + 4]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x1005b3be
cmp dword [eax + 8], ebx
je 0x1005b3ba
mov eax, dword [eax]
jmp 0x1005b3a0
cmp eax, esi
jne 0x1005b3e9
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x20]
call fcn.100095e0
cmp dword [eax], esi
jne 0x1005b3e9
lea ecx, [esp + 0x18]
call fcn.1000def0
mov al, 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea ecx, [esp + 0x18]
call fcn.1000def0
cmp dword [0x100fe928], 0
mov ebx, dword [ebp + 0xc]
je 0x1005b4ca
movsx eax, word [ebx + 0x84]
mov ecx, 0x100fe920
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.100095e0
mov eax, dword [esp + 0x10]
mov esi, dword [0x100fe924]
cmp eax, esi
je 0x1005b468
add eax, 0xc
lea ecx, [esp + 0x18]
push eax
call fcn.10015440
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
call fcn.100095e0
lea ecx, [esp + 0x18]
mov edi, dword [eax]
call fcn.1000def0
cmp edi, esi
je 0x1005b4bf
mov esi, dword [0x100fe924]
movzx eax, word [ebx + 0x78]
mov ecx, 0x100fe920
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.100095e0
mov eax, dword [esp + 0x10]
cmp eax, esi
je 0x1005b4ca
add eax, 0xc
lea ecx, [esp + 0x18]
push eax
call fcn.10015440
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
call fcn.100095e0
lea ecx, [esp + 0x18]
mov edi, dword [eax]
call fcn.1000def0
cmp edi, esi
jne 0x1005b4ca
mov al, 7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [0x100fe948], 0
je 0x1005b50d
lea eax, [esp + 0xc]
mov ecx, 0x100fe940
push eax
lea eax, [esp + 0x18]
push eax
call fcn.100095e0
mov eax, dword [esp + 0x14]
cmp eax, dword [0x100fe944]
je 0x1005b50d
mov eax, dword [ebx + 0x128]
mov eax, dword [eax + 0x10]
cmp byte [eax + 2], 0
je 0x1005b50d
mov al, 6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [0x100fe908], 0
je 0x1005b547
lea eax, [esp + 0xc]
mov ecx, 0x100fe900
push eax
lea eax, [esp + 0x18]
push eax
call fcn.100095e0
mov eax, dword [esp + 0x14]
cmp eax, dword [0x100fe904]
je 0x1005b547
mov eax, dword [ebx + 0x128]
mov eax, dword [eax + 0x10]
cmp byte [eax + 2], 0
mov al, 8
je 0x1005b549
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8