Function at 0x10027d30
Capabilities:
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007734c
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xd8
mov eax, dword [0x10094128]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [0x100bfc58]
mov esi, dword [esi + 0x10370]
mov esi, dword [esi]
mov dword [ebp - 0x6c], esi
cmp byte [esi + 0xd], 0
jne 0x100284fd
nop dword [eax]
xor edi, edi
mov dword [ebp - 0xa0], 0
lea edx, [esi + 0xe]
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x98], edi
mov dword [ebp - 4], edi
movzx eax, byte [edx]
mov edi, dword [0x100bfc58]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edx + 1]
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [edi + 0xf540]
push eax
push edx
lea eax, [ebp - 0xd0]
push eax
call fcn.1001ee60
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x10027df8
mov ecx, dword [edi + 0xf544]
cmp ecx, dword [edi + 0xf544]
je 0x10027f51
mov eax, dword [0x100a1bbc]
mov edx, dword [ecx + 0x3c]
mov edi, dword [ecx + 0x40]
mov dword [ebp - 0x64], edx
lea eax, [eax + eax*2]
lea eax, [eax + 3]
lea eax, [ecx + eax*4]
add ecx, 0x3c
cmp edx, edi
jne 0x10027e77
mov ecx, dword [eax]
xor edi, edi
mov eax, dword [eax + 4]
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x60], ecx
cmp ecx, eax
je 0x10027f18
sub eax, ecx
lea ecx, [ebp - 0x78]
mov edi, eax
mov dword [ebp - 0x64], eax
sar edi, 1
push edi
call fcn.1000cb90
push dword [ebp - 0x64]
mov dword [ebp - 0x78], eax
push dword [ebp - 0x60]
lea edi, [eax + edi*2]
push eax
mov dword [ebp - 0x7c], edi
call fcn.10054d20
add esp, 0xc
mov dword [ebp - 0x74], edi
jmp 0x10027f18
mov edx, dword [eax + 4]
mov eax, dword [eax]
cmp eax, edx
jne 0x10027e91
push ecx
lea ecx, [ebp - 0x78]
call fcn.1001a310
mov edi, dword [ebp - 0x70]
jmp 0x10027f15
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xb8], 0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0xa4], 0
push dword [ebp - 0xa4]
push ecx
push edx
push eax
push edi
push dword [ebp - 0x64]
lea ecx, [ebp - 0xc8]
call fcn.1001ece0
mov ecx, dword [ebp - 0xbc]
add esp, 0x18
mov eax, dword [ebp - 0xc0]
mov edi, dword [ebp - 0xb8]
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], ecx
mov byte [ebp - 4], 0
mov dword [ebp - 0x7c], edi
movq xmm0, qword [ebp - 0x78]
movq qword [ebp - 0xa0], xmm0
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x98], edi
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0xa0], eax
jne 0x10027f81
mov ecx, dword [0x100bfc58]
lea edi, [esi + 0xe]
push edi
lea eax, [ebp - 0xe4]
push eax
lea ecx, [ecx + 0xf8a0]
call fcn.1001db80
mov ecx, dword [eax + 8]
cmp byte [ecx + 0xd], 0
jne 0x10027ff0
mov ax, word [edi]
cmp ax, word [ecx + 0x10]
jb 0x10027ff0
jmp 0x10027f84
lea edi, [esi + 0xe]
mov ecx, dword [0x100bfc58]
push edi
lea ecx, [ecx + 0xf8a0]
call fcn.1002c370
mov edi, eax
lea eax, [ebp - 0xa0]
cmp edi, eax
je 0x10027ff0
mov eax, dword [ebp - 0x60]
sub eax, dword [ebp - 0xa0]
mov ecx, dword [edi]
mov edx, eax
mov dword [ebp - 0x60], eax
mov eax, dword [edi + 8]
sub eax, ecx
sar edx, 1
sar eax, 1
mov dword [ebp - 0x64], ecx
cmp edx, eax
jbe 0x10027fcf
push edx
mov ecx, edi
call fcn.1001f300
mov ecx, dword [edi]
mov dword [ebp - 0x64], ecx
push dword [ebp - 0x60]
push dword [ebp - 0xa0]
push ecx
call fcn.10054d20
mov eax, dword [ebp - 0x60]
add esp, 0xc
add eax, dword [ebp - 0x64]
mov dword [edi + 4], eax
nop word [eax + eax]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
lea edx, [esi + 0xe]
mov byte [ebp - 4], 3
movzx eax, byte [edx]
mov edi, dword [0x100bfc58]
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, byte [edx + 1]
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [edi + 0xf8a8]
push eax
push edx
lea eax, [ebp - 0xd8]
push eax
call fcn.1001ee60
mov eax, dword [eax + 4]
test eax, eax
jne 0x10028051
mov eax, dword [edi + 0xf8ac]
cmp eax, dword [edi + 0xf8ac]
je 0x10028081
add eax, 0xc
lea ecx, [ebp - 0x44]
cmp ecx, eax
je 0x10028132
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x10028072
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x44]
call fcn.1000c850
jmp 0x10028132
movzx ecx, word [esi + 0xe]
lea edi, [ebp - 0x17]
mov dword [ebp - 0x60], ecx
nop dword [eax + eax]
mov eax, 0xcccccccd
dec edi
mul ecx
shr edx, 3
mov al, dl
mov cl, dl
shl al, 2
add cl, al
mov eax, dword [ebp - 0x60]
add cl, cl
sub al, cl
mov ecx, edx
add al, 0x30
mov byte [edi], al
mov eax, edx
mov dword [ebp - 0x60], eax
test eax, eax
jne 0x10028090
mov dword [ebp - 0x5c], 0
lea eax, [ebp - 0x17]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xf
mov byte [ebp - 4], 3
cmp edi, eax
je 0x100280e6
sub eax, edi
lea ecx, [ebp - 0x5c]
push eax
push edi
call fcn.1000c850
mov eax, dword [ebp - 0x30]
cmp eax, 0x10
jb 0x1002811c
mov ecx, dword [ebp - 0x44]
lea edx, [eax + 1]
mov eax, ecx
cmp edx, 0x1000
jb 0x10028112
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100287a4
push edx
push ecx
call fcn.10053414
add esp, 8
movups xmm0, xmmword [ebp - 0x5c]
movups xmmword [ebp - 0x44], xmm0
movq xmm0, qword [ebp - 0x4c]
movq qword [ebp - 0x34], xmm0
mov byte [ebp - 4], 3
cmp dword [ebp - 0x30], 0x10
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x34]
mov ecx, 0x100a1bc0
cmovae edx, dword [ebp - 0x44]
sub esp, 8
mov edi, esp
mov dword [ebp - 0x60], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x64], eax
mov dword [edi], 0x100a1bc0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10028160
push dword [ebp - 0x60]
sub ecx, dword [ebp - 0x64]
lea eax, [ebp - 0x94]
push edx
push 4
mov dword [edi + 4], ecx
mov ecx, 0x10094bfc
push eax
call fcn.1000aad0
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x94]
cmp eax, dword [ebp - 0x90]
je 0x10028410
mov eax, dword [ebp - 0x68]
movzx eax, word [eax]
mov dword [ebp - 0x64], eax
mov eax, dword [0x100bfc58]
mov ecx, dword [eax + 0x1033c]
mov edi, ecx
mov edx, dword [eax + 0x10338]
sub edi, edx
sar edi, 1
mov dword [ebp - 0x60], ecx
cmp edi, 1
jb 0x100281e4
cmp edi, 0x32
jae 0x10028245
cmp edx, ecx
je 0x100281e4
mov edi, dword [ebp - 0x64]
nop
cmp word [edx], di
je 0x100281dc
add edx, 2
cmp edx, ecx
jne 0x100281d0
cmp edx, ecx
jne 0x10028297
lea ecx, [eax + 0xf8a0]
lea eax, [esi + 0xe]
push eax
call fcn.1002c370
mov edi, eax
lea eax, [ebp - 0x94]
cmp edi, eax
je 0x10028410
mov ecx, dword [ebp - 0x90]
mov edx, ecx
mov eax, dword [ebp - 0x94]
sub edx, eax
mov dword [ebp - 0x68], eax
mov eax, dword [edi]
mov dword [ebp - 0x60], eax
mov eax, dword [edi + 8]
sub eax, dword [ebp - 0x60]
sar edx, 1
sar eax, 1
mov dword [ebp - 0x6c], ecx
cmp edx, eax
jbe 0x100283e9
push edx
mov ecx, edi
call fcn.1001f300
mov eax, dword [edi]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x60], eax
jmp 0x100283ec
test edi, edi
jle 0x10028282
mov esi, dword [ebp - 0x64]
nop dword [eax]
mov ecx, edi
shr ecx, 1
mov dword [ebp - 0x64], ecx
lea eax, [edx + ecx*2]
mov dword [ebp - 0x68], eax
cmp word [eax], si
jae 0x10028271
or ecx, 0xffffffff
mov edx, eax
sub ecx, dword [ebp - 0x64]
add edx, 2
add edi, ecx
jmp 0x10028273
mov edi, ecx
test edi, edi
jg 0x10028250
mov esi, dword [ebp - 0x6c]
mov eax, dword [0x100bfc58]
mov ecx, dword [ebp - 0x60]
cmp edx, ecx
je 0x100281e4
movzx ecx, word [esi + 0xe]
cmp cx, word [edx]
jb 0x100281e4
lea ecx, [eax + 0xf8a0]
lea eax, [esi + 0xe]
push eax
call fcn.1002c370
mov ecx, dword [eax]
mov edi, dword [eax + 4]
mov dword [ebp - 0x68], ecx
cmp ecx, edi
jne 0x100282d5
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebp - 0x88]
call fcn.1001a310
mov eax, dword [ebp - 0x88]
mov edi, dword [ebp - 0x80]
mov dword [ebp - 0x60], eax
jmp 0x10028371
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x90]
cmp ecx, edx
je 0x100282b8
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], 0
mov byte [ebp - 0xa8], 0
lea eax, [ebp - 0xb4]
push dword [ebp - 0xa8]
mov byte [ebp - 4], 8
push eax
push edx
push ecx
push edi
push dword [ebp - 0x68]
lea ecx, [ebp - 0xc4]
call fcn.1001ece0
mov ecx, dword [ebp - 0xb4]
add esp, 0x18
mov edi, dword [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xac], 0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x80], edi
mov byte [ebp - 4], 9
lea eax, [esi + 0xe]
mov ecx, dword [0x100bfc58]
push eax
lea ecx, [ecx + 0xf8a0]
call fcn.1002c370
lea ecx, [ebp - 0x88]
mov dword [ebp - 0x68], eax
cmp eax, ecx
je 0x100283b4
mov ecx, eax
call fcn.1000b250
mov eax, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x60]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x84]
mov dword [eax + 4], ecx
mov dword [eax + 8], edi
jmp 0x100283cc
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x10028410
sub edi, eax
lea ecx, [ebp - 0x88]
sar edi, 1
push edi
push eax
call fcn.1000cbf0
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
jmp 0x10028410
mov eax, dword [ebp - 0x60]
mov edx, dword [ebp - 0x68]
sub ecx, edx
push ecx
push edx
push eax
mov dword [ebp - 0x6c], ecx
call fcn.10054d20
mov eax, dword [ebp - 0x6c]
add esp, 0xc
add eax, dword [ebp - 0x60]
mov dword [edi + 4], eax
nop dword [eax + eax]
lea ecx, [ebp - 0x94]
call fcn.1000b250
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x30]
cmp edx, 0x10
jb 0x10028453
mov ecx, dword [ebp - 0x44]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10028449
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100287a4
push edx
push ecx
call fcn.10053414
add esp, 8
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
test ecx, ecx
je 0x100284a8
mov eax, dword [ebp - 0x7c]
sub eax, ecx
sar eax, 1
push eax
push ecx
lea ecx, [ebp - 0xa0]
call fcn.1000cbf0
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x100284d7
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x100284d0
nop word [eax + eax]
cmp esi, dword [eax + 8]
jne 0x100284d0
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x100284c0
mov esi, eax
mov dword [ebp - 0x6c], esi
jmp 0x100284f3
mov esi, eax
mov dword [ebp - 0x6c], esi
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x100284f3
mov eax, dword [ecx]
mov esi, ecx
mov dword [ebp - 0x6c], esi
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x100284e4
cmp byte [esi + 0xd], 0
je 0x10027d90
mov esi, dword [0x100bfc58]
mov esi, dword [esi + 0x10368]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x10028786
nop word [eax + eax]
movzx eax, word [esi + 0xe]
mov edx, dword [0x100bfc58]
lea edi, [eax + eax*2]
mov eax, dword [0x100a1bbc]
shl edi, 6
lea eax, [eax + eax*2]
lea ecx, [edi + edx]
add edx, 0x30
add edx, edi
lea eax, [ecx + eax*4]
mov ecx, dword [edx]
mov edi, dword [edx + 4]
mov dword [ebp - 0x68], ecx
cmp ecx, edi
jne 0x10028560
push eax
lea ecx, [ebp - 0x94]
call fcn.1001a310
jmp 0x100285fa
mov ecx, dword [eax + 4]
mov eax, dword [eax]
cmp eax, ecx
jne 0x1002857a
push edx
lea ecx, [ebp - 0x94]
call fcn.1001a310
jmp 0x100285fa
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov byte [ebp - 0xa8], 0
lea edx, [ebp - 0x78]
push dword [ebp - 0xa8]
mov dword [ebp - 4], 0xa
push edx
push ecx
push eax
push edi
push dword [ebp - 0x68]
lea ecx, [ebp - 0xc4]
call fcn.1001ece0
mov ecx, dword [ebp - 0x74]
add esp, 0x18
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x90], ecx
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x8c], edx
mov dword [ebp - 4], 0xffffffff
call fcn.1000b250
lea eax, [ebp - 0x94]
push eax
movzx eax, word [esi + 0xe]
add eax, 0x14c6
lea ecx, [eax + eax*2]
mov eax, dword [0x100bfc58]
lea ecx, [eax + ecx*4]
call fcn.1001a280
lea ecx, [ebp - 0x94]
call fcn.1000b250
mov edi, dword [0x100bfc58]
movzx eax, word [esi + 0xe]
push ecx
lea ecx, [ebp - 0xa4]
shl eax, 5
push ecx
lea ecx, [edi + 0xdaa0]
mov dword [ebp - 0x68], eax
add ecx, eax
call fcn.1001caf0
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ecx + edi + 0xdaa4]
je 0x100286da
lea ecx, [eax + 0x10]
mov eax, dword [ecx]
mov dword [ebp - 0x64], ecx
cmp eax, dword [ecx + 4]
je 0x100286da
movzx edx, word [esi + 0xe]
lea ecx, [edi + 0x10338]
lea eax, [edx + 0x14c6]
add edx, 0x190
lea eax, [eax + eax*2]
shl eax, 2
mov dword [ebp - 0x6c], eax
call fcn.10015f80
push dword [ebp - 0x64]
test al, al
je 0x100286cf
mov edx, dword [ebp - 0x6c]
lea ecx, [ebp - 0xb4]
lea edx, [edx + edi]
call fcn.10016010
add esp, 4
push eax
movzx eax, word [esi + 0xe]
add eax, 0x14c6
lea ecx, [eax + eax*2]
mov eax, dword [0x100bfc58]
lea ecx, [eax + ecx*4]
call fcn.1001a280
lea ecx, [ebp - 0xb4]
call fcn.1000b250
jmp 0x100286da
mov ecx, dword [ebp - 0x6c]
lea ecx, [ecx + edi]
call fcn.1001a220
push 0xffffffffffffffff
mov eax, 0x56e230
call eax
add esp, 4
test eax, eax
je 0x1002873a
mov ecx, dword [eax + 0x2c]
xor eax, eax
mov edx, dword [0x100bfc58]
test ecx, ecx
setne al
sub ecx, eax
movzx eax, word [esi + 0xe]
push ecx
lea eax, [eax + eax*8]
lea eax, [eax + 0x13e0]
lea ecx, [edx + eax*8]
call fcn.1001a210
mov edi, eax
mov ecx, dword [edi]
cmp ecx, dword [edi + 4]
je 0x1002873a
movzx eax, word [esi + 0xe]
add eax, 0x14c6
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*4]
cmp eax, dword [edx + ecx*4 + 4]
lea ecx, [edx + ecx*4]
je 0x1002873a
mov edx, edi
call fcn.10015dd0
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x10028764
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x10028760
nop dword [eax]
cmp esi, dword [eax + 8]
jne 0x10028760
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10028750
mov esi, eax
jmp 0x1002877c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x1002877c
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x10028770
cmp byte [esi + 0xd], 0
je 0x10028520
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100531e7
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.1005eb2f
int3