Function at 0x10058490
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100c3b88
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebx
push esi
mov esi, dword [ebp + 8]
mov edx, 0xf2d
push edi
mov eax, dword [esi + 0x18]
mov cl, byte [esi + 0x2c]
mov byte [ebp + 0xb], cl
movzx ebx, word [eax + 0x80]
mov eax, ebx
cmp ax, dx
je 0x1005891d
mov edx, 0xf2c
cmp ax, dx
je 0x1005891d
cmp dword [0x100fe488], 0
mov al, byte [0x100fe0b0]
mov byte [ebp - 0xd], al
jbe 0x10058571
mov edi, dword [0x100fe48c]
shr ebx, 7
and ebx, 0xf
mov eax, ebx
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
and ecx, dword [0x100fe498]
mov eax, dword [edi + ecx*8]
add ecx, ecx
lea edx, [ecx*4 + 4]
mov ecx, dword [edi + ecx*4]
mov dword [ebp - 0x14], edx
mov edx, dword [0x100fe484]
mov dword [ebp - 0x18], ecx
nop
cmp ecx, edx
jne 0x10058538
mov ecx, edx
jmp 0x10058540
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + edi]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x10058550
cmp byte [eax + 8], bl
je 0x10058552
mov eax, dword [eax]
mov ecx, dword [ebp - 0x18]
jmp 0x10058530
mov eax, edx
cmp eax, edx
je 0x1005856b
lea eax, [ebp - 0xd]
mov byte [ebp - 0xd], bl
push eax
mov ecx, 0x100fe480
call fcn.100283d0
mov al, byte [eax]
jmp 0x1005856e
mov al, byte [ebp - 0xd]
mov cl, byte [ebp + 0xb]
cmp cl, al
jb 0x100585f8
test al, al
je 0x100585f8
mov edi, dword [ebp + 0xc]
mov ecx, edi
push 0x30cf
mov eax, dword [edi]
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0xc], 0x48
lea eax, [ebp + 0xc]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], 0x404090
mov edx, dword [ebp - 0x18]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x14]
call dword [ebp - 0x1c]
lea eax, [ebp + 0xc]
mov byte [ebp + 0xc], 0
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0x404090
mov edx, dword [ebp - 0x1c]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x14]
call dword [ebp - 0x18]
mov eax, dword [edi]
mov ecx, edi
push esi
mov eax, dword [eax + 0x27c]
call eax
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp cl, 5
jb 0x100588e9
mov eax, 0x270f
cmp word [0x100fe0c0], ax
jne 0x100588e9
mov edx, dword [esi + 0x18]
cmp dword [edx + 0x28], 0x10
lea ecx, [edx + 0x14]
jb 0x10058622
mov ecx, dword [edx + 0x14]
mov edx, dword [edx + 0x24]
push 5
push str._RARE
push ecx
call fcn.10007490
add esp, 0xc
cmp eax, 0xffffffff
je 0x100588e9
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2c]
mov eax, dword [esi + 0x60]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x64]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
call fcn.10009700
mov eax, dword [esi + 0x68]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x6c]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
call fcn.10009700
mov eax, dword [esi + 0x70]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
call fcn.10009700
mov eax, dword [esi + 0x78]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
call fcn.10009700
mov eax, dword [esi + 0x80]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x84]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
call fcn.10009700
mov eax, dword [esi + 0x88]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x8c]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
call fcn.10009700
mov eax, dword [esi + 0x90]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x94]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
call fcn.10009700
mov eax, dword [esi + 0x98]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x9c]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
call fcn.10009700
mov eax, dword [esi + 0xa0]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0xa4]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
call fcn.10009700
mov eax, dword [esi + 0xa8]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0xac]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10009700
mov eax, dword [esi + 0xb0]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0xb4]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
call fcn.10009700
mov eax, dword [esi + 0xb8]
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0xbc]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x20]
push eax
call fcn.10009700
mov ebx, dword [ebp - 0x2c]
mov ecx, ebx
mov edx, dword [ebp - 0x28]
cmp ebx, edx
je 0x1005881f
mov eax, dword [ecx]
cmp eax, 0x2f
je 0x1005880e
cmp eax, 0x30
je 0x1005880e
cmp eax, 0x31
je 0x1005880e
cmp eax, 0x32
je 0x1005880e
cmp eax, 0x33
je 0x1005880e
cmp eax, 0x34
je 0x1005880e
cmp eax, 0xc2
je 0x1005880e
cmp eax, 0xc3
je 0x1005880e
cmp eax, 0xc4
je 0x1005880e
cmp eax, 0xc5
je 0x1005880e
cmp eax, 0xc6
je 0x1005880e
cmp eax, 0xc7
je 0x1005880e
cmp eax, 0x1cd
je 0x1005880e
cmp eax, 0x1d1
jne 0x10058818
cmp dword [ecx + 4], 0
jg 0x100588b5
add ecx, 8
cmp ecx, edx
jne 0x100587b6
mov edi, dword [ebp + 0xc]
mov ecx, edi
push 0x30cf
mov eax, dword [edi]
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0xc], 0x48
lea eax, [ebp + 0xc]
mov dword [ebp - 0x14], esi
mov dword [ebp + 8], eax
mov dword [ebp - 0x1c], 0x404090
mov edx, dword [ebp + 8]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x14]
call dword [ebp - 0x1c]
lea eax, [ebp + 8]
mov byte [ebp + 8], 2
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x1c], 0x404090
mov edx, dword [ebp + 0xc]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x14]
call dword [ebp - 0x1c]
mov eax, dword [edi]
mov ecx, edi
push esi
mov eax, dword [eax + 0x27c]
call eax
test ebx, ebx
je 0x1005898b
mov ecx, dword [ebp - 0x24]
mov eax, ebx
sub ecx, ebx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x100588fe
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100589a0
jmp 0x100588fe
test ebx, ebx
je 0x100588e9
mov ecx, dword [ebp - 0x24]
mov eax, ebx
sub ecx, ebx
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x100588df
mov ebx, dword [ebx - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100589a5
push ecx
push ebx
call fcn.1006cd71
add esp, 8
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push ecx
push ebx
call fcn.1006cd71
add esp, 8
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp cl, byte [0x100fe07d]
jb 0x100588e9
mov edi, dword [ebp + 0xc]
mov ecx, edi
push 0x30cf
mov eax, dword [edi]
mov eax, dword [eax + 0x278]
call eax
mov esi, eax
mov byte [ebp + 0xc], 0x48
lea eax, [ebp + 0xc]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0x404090
mov edx, dword [ebp - 0x1c]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x14]
call dword [ebp - 0x18]
lea eax, [ebp + 0xc]
mov byte [ebp + 0xc], 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0x404090
mov edx, dword [ebp - 0x1c]
push edx
mov eax, 1
mov ecx, dword [ebp - 0x14]
call dword [ebp - 0x18]
mov eax, dword [edi]
mov ecx, edi
push esi
mov eax, dword [eax + 0x27c]
call eax
mov ecx, dword [ebp - 0xc]
xor al, al
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.10087f1c
call fcn.10087f1c
int3