Function at 0x10071740
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
sub esp, 0x150
cmp dword [0x10828854], 0
push esi
push edi
je 0x1007219e
cmp byte [0x101ce6ea], 0
je 0x10071789
mov byte [0x101ce6ea], 0
call fcn.100707d0
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword fs:[0x2c]
mov ecx, dword [0x101e98fc]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10830920]
cmp eax, dword [ecx + 4]
jg 0x100721a7
movss xmm0, dword [0x10830924]
movss xmm1, dword [0x101ce1cc]
ucomiss xmm0, xmm1
xorps xmm0, xmm0
lahf
test ah, 0x44
jnp 0x100717e2
comiss xmm0, xmm1
movss dword [0x10830924], xmm1
jb 0x100717e2
call fcn.100716f0
movss xmm1, dword [0x101ce1cc]
xorps xmm0, xmm0
cmp dword [0x108288c8], 0
je 0x1007219e
comiss xmm0, xmm1
jae 0x1007219e
mov eax, dword [0xb72914]
mov dword [ebp - 0x20], eax
mov eax, 0x56e210
push 0
call eax
mov edx, dword [0x108288a4]
add esp, 4
mov eax, dword [edx]
cmp eax, edx
je 0x10071831
nop dword [eax + eax]
mov dword [eax + 0x48], 0
mov eax, dword [eax]
cmp eax, dword [0x108288a4]
jne 0x10071820
mov edi, dword [0x108288c4]
mov esi, dword [edi]
cmp esi, edi
je 0x10072130
nop dword [eax]
nop word [eax + eax]
mov dl, byte [esi + 0x20]
movss xmm1, dword [0x101b29a0]
movss dword [ebp - 0x10], xmm1
mov byte [ebp - 0x1c], 0
test dl, dl
je 0x1007188e
mov cl, byte [esi + 0x21]
test cl, cl
je 0x1007188e
mov eax, dword [0x102a01a0]
push ecx
push edx
call eax
mov ecx, dword [ebp - 0x1c]
add esp, 8
test al, al
movzx ecx, cl
mov eax, 1
cmove ecx, eax
mov dword [ebp - 0x1c], ecx
movsx eax, byte [esi + 0x29]
cmp dword [ebp - 0x20], eax
jne 0x10072095
movss xmm2, dword [esi + 0x18]
sub esp, 0xc
movss xmm1, dword [esi + 0x2c]
xorps xmm0, xmm0
comiss xmm1, xmm0
mov eax, 0x420b10
movss xmm3, dword [esi + 0x14]
movss xmm4, dword [esi + 0x10]
movss dword [esp + 8], xmm2
movss dword [esp + 4], xmm3
movss dword [esp], xmm4
jbe 0x10071aea
lea ecx, [ebp - 0x68]
call eax
movss xmm0, dword [esi + 0x18]
lea ecx, [ebp - 0x74]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [0x1020d5f4]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x1020d5f0]
movss dword [esp], xmm0
call eax
movss xmm0, dword [ebp - 0x60]
lea ecx, [ebp - 0xcc]
subss xmm0, dword [ebp - 0x6c]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x64]
subss xmm0, dword [ebp - 0x70]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x68]
subss xmm0, dword [ebp - 0x74]
movss dword [esp], xmm0
call eax
lea ecx, [ebp - 0xcc]
mov eax, 0x4082c0
call eax
fstp dword [ebp - 8]
movss xmm0, dword [ebp - 8]
lea eax, [esi + 0x1c]
comiss xmm0, dword [eax]
mov dword [ebp - 0x14], eax
jae 0x10072095
movss xmm0, dword [0x1020d5f8]
comiss xmm0, dword [esi + 0x18]
ja 0x10072095
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0x15]
push eax
sub esp, 0xc
mov eax, 0x5696c0
movss dword [esp + 8], xmm0
movss xmm0, dword [0x1020d5f4]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x1020d5f0]
movss dword [esp], xmm0
call eax
add esp, 8
lea ecx, [ebp - 0x80]
fstp dword [ebp - 4]
movss xmm0, dword [ebp - 4]
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [0x1020d5f4]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x1020d5f0]
movss dword [esp], xmm0
call eax
movss xmm0, dword [0x1020d5f8]
lea ecx, [ebp - 0x8c]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [0x1020d5f4]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x1020d5f0]
movss dword [esp], xmm0
call eax
movss xmm0, dword [ebp - 0x78]
lea ecx, [ebp - 0xd8]
subss xmm0, dword [ebp - 0x84]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x7c]
subss xmm0, dword [ebp - 0x88]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x80]
subss xmm0, dword [ebp - 0x8c]
movss dword [esp], xmm0
call eax
lea ecx, [ebp - 0xd8]
mov eax, 0x4082c0
call eax
movss xmm1, dword [esi + 0x2c]
fstp dword [ebp - 8]
movss xmm0, dword [ebp - 8]
comiss xmm0, xmm1
jae 0x10072095
cmp byte [esi + 0xc], 0
jne 0x10071de2
cmp byte [esi + 0x28], 0
jne 0x10071aa4
xorps xmm1, xmm1
movss xmm0, dword [ebp - 4]
lea ecx, [ebp - 0xe4]
sub esp, 0xc
movss dword [ebp - 0x10], xmm1
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [0x1020d5f4]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x1020d5f0]
movss dword [esp], xmm0
call eax
lea eax, [ebp - 0xe4]
jmp 0x10071dd7
comiss xmm0, xmm1
jbe 0x10071cea
lea ecx, [ebp - 0x98]
call eax
movss xmm0, dword [esi + 0x18]
lea ecx, [ebp - 0xa4]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [0x1020d5f4]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x1020d5f0]
movss dword [esp], xmm0
call eax
movss xmm0, dword [ebp - 0x90]
lea ecx, [ebp - 0xf0]
subss xmm0, dword [ebp - 0x9c]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x94]
subss xmm0, dword [ebp - 0xa0]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x98]
subss xmm0, dword [ebp - 0xa4]
movss dword [esp], xmm0
call eax
lea ecx, [ebp - 0xf0]
mov eax, 0x4082c0
call eax
fstp dword [ebp - 8]
movss xmm0, dword [ebp - 8]
lea eax, [esi + 0x1c]
comiss xmm0, dword [eax]
mov dword [ebp - 0x14], eax
jae 0x10072095
movss xmm2, dword [esi + 0x18]
movss xmm1, dword [0x1020d5f8]
comiss xmm2, xmm1
ja 0x10072095
movss xmm0, dword [esi + 0x2c]
mulss xmm0, dword [0x101b29a0]
comiss xmm1, xmm0
ja 0x10072095
cmp byte [esi + 0xc], 0
jne 0x10071de2
movss xmm0, dword [esi + 0x14]
lea ecx, [ebp - 0xb0]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm2
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x10]
movss dword [esp], xmm0
call eax
movss xmm0, dword [esi + 0x2c]
lea ecx, [ebp - 0x38]
mulss xmm0, dword [0x101b29a0]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x10]
movss dword [esp], xmm0
call eax
movss xmm0, dword [ebp - 0xa8]
lea ecx, [ebp - 0xfc]
subss xmm0, dword [ebp - 0x30]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0xac]
subss xmm0, dword [ebp - 0x34]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0xb0]
subss xmm0, dword [ebp - 0x38]
movss dword [esp], xmm0
call eax
lea ecx, [ebp - 0xfc]
mov eax, 0x4082c0
call eax
cmp byte [esi + 0x28], 0
fstp dword [ebp - 8]
je 0x10071ca1
movss xmm1, dword [ebp - 8]
jmp 0x10071ca4
xorps xmm1, xmm1
movss xmm0, dword [esi + 0x18]
lea ecx, [ebp - 0x108]
sub esp, 0xc
movss dword [ebp - 0x10], xmm1
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [0x1020d5f4]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x1020d5f0]
movss dword [esp], xmm0
call eax
lea eax, [ebp - 0x108]
jmp 0x10071dd7
lea ecx, [ebp - 0x44]
call eax
movss xmm0, dword [0x1020d5f8]
lea ecx, [ebp - 0x50]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [0x1020d5f4]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x1020d5f0]
movss dword [esp], xmm0
call eax
movss xmm0, dword [ebp - 0x3c]
lea ecx, [ebp - 0x114]
subss xmm0, dword [ebp - 0x48]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x40]
subss xmm0, dword [ebp - 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x44]
subss xmm0, dword [ebp - 0x50]
movss dword [esp], xmm0
call eax
lea ecx, [ebp - 0x114]
mov eax, 0x4082c0
call eax
movss xmm1, dword [esi + 0x1c]
lea eax, [esi + 0x1c]
fstp dword [ebp - 4]
movss xmm0, dword [ebp - 4]
comiss xmm0, xmm1
mov dword [ebp - 0x14], eax
jae 0x10072095
cmp byte [esi + 0xc], 0
jne 0x10071de5
cmp byte [esi + 0x28], 0
jne 0x10071d9c
xorps xmm1, xmm1
movss xmm0, dword [esi + 0x18]
lea ecx, [ebp - 0x120]
sub esp, 0xc
movss dword [ebp - 0x10], xmm1
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [esi + 0x14]
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x10]
movss dword [esp], xmm0
call eax
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x2c]
mov eax, 0x411b50
call eax
mov eax, dword [ebp - 0x14]
cmp byte [ebp - 0x1c], 0
jne 0x10072095
movss xmm0, dword [ebp - 0x10]
xorps xmm2, xmm2
comiss xmm0, xmm2
jb 0x10072126
cmp byte [esi + 0xc], 0
jne 0x10071f01
movss xmm1, dword [eax]
mov edx, dword [esi + 0x24]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
movss xmm3, dword [esi + 0x10]
imul eax, eax, 0x1000193
mov dword [ebp - 4], edx
movss dword [ebp - 8], xmm3
movss xmm3, dword [esi + 0x14]
movss dword [ebp - 0x14], xmm3
xor ecx, eax
movss xmm3, dword [esi + 0x18]
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
shr edx, 0x18
mov byte [esi + 0xc], 1
xor ecx, eax
movss dword [ebp - 0xc], xmm3
imul eax, ecx, 0x1000193
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.100733f0
mov ecx, dword [0x108288a4]
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
mov dword [ebp - 4], ecx
cmp ecx, dword [0x108288a4]
je 0x10071f01
mov edx, dword [ecx + 0x44]
test edx, edx
je 0x10071f01
cmp byte [ecx + 0x40], 0
jne 0x10071f01
mov byte [ecx + 0x40], 1
cmp byte [ecx + 0xc], 0
jne 0x10071eef
mov eax, dword [edx]
push ecx
mov ecx, edx
movss dword [esp], xmm1
call dword [eax + 0x38]
mov eax, dword [ebp - 4]
sub esp, 0xc
movss xmm0, dword [ebp - 8]
mov ecx, dword [eax + 0x44]
mov eax, dword [ecx]
mov edx, dword [eax + 0x48]
mov eax, esp
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x14]
movss dword [eax + 4], xmm0
movss xmm0, dword [ebp - 0xc]
movss dword [eax + 8], xmm0
call edx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx + 0x44]
push 0
mov eax, dword [ecx]
call dword [eax + 0x10]
movss xmm0, dword [ebp - 0x10]
xorps xmm2, xmm2
mov edx, dword [esi + 0x24]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0xc], edx
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
shr eax, 0x10
movzx eax, al
imul ecx, ecx, 0x1000193
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x13c]
push eax
call fcn.100733f0
mov edx, dword [0x108288a4]
mov ecx, edx
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
mov dword [ebp - 8], ecx
cmp ecx, edx
je 0x10072126
mov edx, dword [ecx + 0x44]
test edx, edx
je 0x10072126
movss xmm1, dword [0xb5fccc]
mulss xmm1, dword [0x101ce1cc]
ucomiss xmm0, xmm2
movss dword [ebp - 4], xmm1
lahf
test ah, 0x44
jnp 0x10072081
cmp byte [ecx + 0xc], 0
je 0x10071fc2
mov eax, dword [ebp - 0x24]
movq xmm0, qword [ebp - 0x2c]
movss xmm2, dword [ebp - 0x2c]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xc0]
movq qword [ebp - 0xc0], xmm0
jmp 0x10071fd6
mov eax, dword [edx]
lea ecx, [ebp - 0x150]
push ecx
mov ecx, edx
mov eax, dword [eax + 0x4c]
call eax
movss xmm2, dword [eax]
movss xmm0, dword [eax + 8]
lea ecx, [ebp - 0x5c]
movss xmm1, dword [eax + 4]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
call eax
movss xmm0, dword [ebp - 0x54]
lea ecx, [ebp - 0x12c]
subss xmm0, dword [0x1020d5f8]
sub esp, 0xc
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x58]
subss xmm0, dword [0x1020d5f4]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x5c]
subss xmm0, dword [0x1020d5f0]
movss dword [esp], xmm0
call eax
lea ecx, [ebp - 0x12c]
mov eax, 0x4082c0
call eax
movss xmm0, dword [ebp - 0x10]
fstp dword [ebp - 0xc]
subss xmm0, dword [ebp - 0xc]
movsd xmm1, qword [0x101b2798]
divss xmm0, dword [ebp - 0x10]
cvtps2pd xmm0, xmm0
call fcn.10117b20
mov ecx, dword [ebp - 8]
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [ebp - 4]
comiss xmm1, dword [ecx + 0x48]
jbe 0x10072126
movss dword [ecx + 0x48], xmm1
jmp 0x10072126
cmp byte [esi + 0xc], 0
je 0x10072126
mov edx, dword [esi + 0x24]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0xc], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
mov byte [esi + 0xc], 0
xor ecx, eax
mov eax, edx
shr eax, 0x10
movzx eax, al
imul ecx, ecx, 0x1000193
shr edx, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
xor eax, edx
imul eax, eax, 0x1000193
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x144]
push eax
call fcn.100733f0
mov ecx, dword [0x108288a4]
mov edx, ecx
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, ecx
je 0x10072126
mov ecx, dword [edx + 0x44]
test ecx, ecx
je 0x10072126
cmp byte [edx + 0x40], 0
je 0x10072126
mov byte [edx + 0x40], 0
mov dword [edx + 0x48], 0
mov eax, dword [ecx]
push 1
call dword [eax + 0x10]
mov esi, dword [esi]
cmp esi, edi
jne 0x10071850
mov edi, dword [0x108288a4]
mov esi, dword [edi]
cmp esi, edi
je 0x1007219e
xorps xmm0, xmm0
nop
movss xmm1, dword [esi + 0x48]
comiss xmm0, xmm1
jae 0x10072198
cmp byte [esi + 0x40], 0
je 0x10072198
mov ecx, dword [esi + 0x44]
push ecx
mov dword [ebp - 4], ecx
movss dword [esp], xmm1
mov eax, dword [ecx]
call dword [eax + 0x20]
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
mov eax, dword [eax + 0x60]
mov dword [ebp - 0xc], eax
mov eax, 0x561ad0
call eax
test al, al
je 0x10072181
movss xmm0, dword [0x101b26fc]
jmp 0x10072189
movss xmm0, dword [0x101b2730]
push ecx
mov ecx, dword [ebp - 4]
movss dword [esp], xmm0
call dword [ebp - 0xc]
xorps xmm0, xmm0
mov esi, dword [esi]
cmp esi, edi
jne 0x10072140
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push 0x10830920
call fcn.100eab45
add esp, 4
cmp dword [0x10830920], 0xffffffff
jne 0x100717a9
movss xmm0, dword [0x101ce1cc]
push 0x10830920
movss dword [0x10830924], xmm0
call fcn.100eaaf4
add esp, 4
jmp 0x100717a9