Function at 0x1009e000
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10136655
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x103b0040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword fs:[0x30]
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x50], 0x515dc51c
mov esi, dword [0x103c64f4]
push 0xe442c5c
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x60]
push eax
call fcn.1009e690
mov ecx, esi
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, esi
jne 0x1009e274
mov eax, dword [edi + 0xc]
add eax, 0xc
mov ecx, dword [eax]
mov dword [ebp - 0x4c], ecx
cmp ecx, eax
je 0x1009e041
mov edx, dword [ecx + 0x30]
test edx, edx
je 0x1009e256
mov ecx, edx
mov dword [ebp - 0x30], 0
xorps xmm0, xmm0
mov dword [ebp - 0x2c], 0
movups xmmword [ebp - 0x40], xmm0
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1009e0a0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.1005d440
mov dword [ebp - 4], 0
lea esi, [ebp - 0x40]
cmp dword [ebp - 0x2c], 7
xorps xmm0, xmm0
mov eax, dword [ebp - 0x30]
cmova esi, dword [ebp - 0x40]
seta dl
test dl, dl
mov dword [ebp - 0x18], 0
movups xmmword [ebp - 0x28], xmm0
lea eax, [esi + eax*2]
lea esi, [ebp - 0x40]
cmovne esi, dword [ebp - 0x40]
cmp esi, eax
jne 0x1009e100
mov eax, 0xf
mov byte [ebp - 0x28], 0
mov dword [ebp - 0x14], eax
jmp 0x1009e190
sub eax, esi
mov dword [ebp - 0x14], 0xf
sar eax, 1
mov dword [ebp - 0x48], eax
cmp eax, 0x7fffffff
ja 0x1009e299
mov edi, 0xf
cmp eax, edi
jbe 0x1009e15a
mov edi, eax
or edi, 0xf
cmp edi, 0x7fffffff
jbe 0x1009e136
mov edi, 0x7fffffff
jmp 0x1009e141
cmp edi, 0x16
mov eax, 0x16
cmovb edi, eax
lea eax, [edi + 1]
push eax
lea ecx, [ebp - 0x28]
call fcn.1003ef20
mov edx, eax
mov dword [ebp - 0x14], edi
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x28], edx
jmp 0x1009e15d
mov edx, dword [ebp - 0x28]
cmp edi, 0xf
lea ecx, [ebp - 0x28]
cmova ecx, edx
mov edx, eax
mov dword [ebp - 0x44], ecx
test eax, eax
je 0x1009e183
nop
mov al, byte [esi]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
lea esi, [esi + 2]
sub edx, 1
jne 0x1009e170
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x18], eax
mov byte [ecx + eax], 0
mov eax, dword [ebp - 0x14]
cmp eax, 0xf
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x4c]
lea esi, [ebp - 0x28]
cmova esi, dword [ebp - 0x28]
mov edi, 0x811c9dc5
mov ecx, esi
xor edx, edx
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x54], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x44], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1009e1b6
sub ecx, dword [ebp - 0x44]
je 0x1009e1e7
movsx eax, byte [esi + edx]
xor eax, edi
imul eax, eax, 0x1000193
inc edx
mov dword [ebp - 0x48], eax
mov eax, esi
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1009e1d7
sub eax, edi
mov edi, dword [ebp - 0x48]
cmp edx, eax
jb 0x1009e1c2
lea eax, [ebp - 0x44]
mov dword [ebp - 0x44], edi
push eax
call fcn.1009e2d0
mov ecx, dword [ebp - 0x54]
mov byte [ebp - 4], 0
mov dword [eax], ecx
mov dword [eax + 4], esi
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x1009e22f
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009e225
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1009e26e
push ecx
push edx
call fcn.10124517
add esp, 8
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
mov dword [ebp - 4], 0xffffffff
call fcn.10041050
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x58]
mov eax, dword [edi + 0xc]
mov ecx, dword [ecx]
add eax, 0xc
mov dword [ebp - 0x4c], ecx
cmp ecx, eax
jne 0x1009e074
jmp 0x1009e03b
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
cmp dword [0x103c64f8], 0
setne al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10123fc5
mov esp, ebp
pop ebp
ret
call fcn.1002a150
int3