Function at 0x10076820
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1011ea4d
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [0x101c7100]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp dword [0x10828c28], 0
je 0x10077018
push 0
mov edi, 0x56e210
call edi
mov esi, dword [0x1029fff8]
add esp, 4
movq xmm0, qword [0x1020d5f0]
mov ecx, dword [0x1020d5f8]
mov dword [ebp - 0x54], ecx
mov ecx, 0x1029fff8
movq qword [ebp - 0x5c], xmm0
push dword [esi + 4]
mov dword [ebp - 0x48], eax
push 0x1029fff8
call fcn.10077860
mov dword [esi + 4], esi
mov dword [esi], esi
mov dword [esi + 8], esi
push 0xffffffffffffffff
mov dword [0x1029fffc], 0
call edi
add esp, 4
test eax, eax
je 0x1007690c
mov ecx, dword [eax + 0x14]
test ecx, ecx
cmovne eax, eax
add eax, 4
test ecx, ecx
lea edx, [ecx + 0x30]
cmove edx, eax
movss xmm1, dword [edx]
comiss xmm1, dword [0x101b2a08]
jb 0x1007690c
movss xmm0, dword [0x101b2a04]
comiss xmm0, xmm1
jb 0x1007690c
movss xmm1, dword [edx + 4]
comiss xmm1, dword [0x101b29fc]
jb 0x1007690c
movss xmm0, dword [0x101b298c]
comiss xmm0, xmm1
jb 0x1007690c
movss xmm0, dword [0x101b2920]
comiss xmm0, dword [edx + 8]
mov byte [ebp - 0x29], 1
jae 0x10076910
mov byte [ebp - 0x29], 0
mov ebx, dword [0x10828c24]
mov esi, dword [ebx]
mov edi, esi
cmp esi, ebx
je 0x10076c2e
movzx eax, byte [esi + 8]
lea edx, [esi + 8]
xor eax, 0x811c9dc5
mov edi, dword [edi]
imul ecx, eax, 0x1000193
movzx eax, byte [edx + 1]
xor ecx, eax
movzx eax, byte [edx + 2]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [edx + 3]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
push edx
lea eax, [ebp - 0x64]
push eax
call fcn.10078330
mov ecx, ebx
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], eax
test eax, eax
je 0x10076b99
mov ecx, eax
mov eax, 0x5e4220
call eax
mov ebx, dword [0x10828c24]
test al, al
je 0x10076b99
cmp dword [ebp - 0x34], ebx
je 0x10076b99
mov eax, dword [esi + 0x14]
mov ecx, dword [ebp - 0x38]
mov dword [0x10830a00], eax
mov eax, dword [esi + 0x28]
mov dword [0x10830a4c], eax
mov eax, dword [esi + 0x18]
mov dword [0x108309ec], eax
mov eax, dword [esi + 0x1c]
mov dword [0x108309f8], eax
mov eax, dword [esi + 0x10]
mov dword [0x1082988c], eax
mov eax, dword [ecx + 0x14]
add ecx, 4
test eax, eax
lea edx, [eax + 0x30]
mov eax, 0x420b10
cmove edx, ecx
sub esp, 0xc
lea ecx, [ebp - 0x70]
movss xmm0, dword [edx + 8]
movss xmm1, dword [edx + 4]
movss xmm2, dword [edx]
subss xmm0, dword [ebp - 0x54]
subss xmm1, dword [ebp - 0x58]
subss xmm2, dword [ebp - 0x5c]
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
call eax
lea ecx, [ebp - 0x70]
mov eax, 0x4082c0
call eax
cmp byte [ebp - 0x29], 0
movss xmm0, dword [0x101b2874]
fstp dword [ebp - 0x30]
movss xmm1, dword [ebp - 0x30]
movss dword [0x10830a1c], xmm1
je 0x10076a44
movss xmm0, dword [0x101b28b4]
comiss xmm1, xmm0
jbe 0x10076a58
push esi
lea eax, [ebp - 0x4c]
push eax
call fcn.10077390
jmp 0x10076c1e
mov eax, dword [0xb7cb84]
cmp eax, dword [0x108309f8]
jb 0x10076ae1
mov ecx, dword [0x10830a4c]
mov edx, dword [0x108309ec]
inc edx
mov dword [0x108309ec], edx
movzx eax, word [ecx*2 + 0x10828b10]
cmp edx, eax
jb 0x10076ab7
mov eax, dword [0x10830a00]
inc eax
mov dword [0x10830a00], eax
cmp eax, dword [ecx*4 + 0x101ef220]
jb 0x10076aa7
push esi
lea eax, [ebp - 0x50]
push eax
call fcn.10077390
jmp 0x10076c1e
mov ebx, dword [ebp - 0x34]
xor edx, edx
mov dword [0x108309ec], edx
mov dword [ebx + 0x14], eax
jmp 0x10076aba
mov ebx, dword [ebp - 0x34]
mov eax, dword [ecx*4 + 0x101ef3b0]
mov dword [ebx + 0x18], edx
add eax, dword [0xb7cb84]
mov dword [0x108309f8], eax
mov dword [ebx + 0x1c], eax
call fcn.10076790
mov dword [0x1082988c], eax
mov dword [ebx + 0x10], eax
jmp 0x10076ae4
mov ebx, dword [ebp - 0x34]
movss dword [ebx + 0xc], xmm1
lea eax, [ebp - 0x30]
mulss xmm1, dword [0x101b29a0]
mov ecx, 0x1029fff8
push eax
lea eax, [ebp - 0x44]
push eax
movss dword [ebp - 0x30], xmm1
call fcn.100782e0
mov eax, dword [ebp - 0x3c]
cmp byte [eax + 0xd], 0
jne 0x10076b1b
movss xmm0, dword [eax + 0x10]
comiss xmm0, xmm1
jbe 0x10076b8e
cmp dword [0x1029fffc], 0xaaaaaaa
je 0x10077034
mov esi, dword [0x1029fff8]
mov dword [ebp - 0x18], 0x1029fff8
mov dword [ebp - 4], 0
push 0x18
mov dword [ebp - 0x14], 0
call fcn.100eada9
mov dword [ebp - 4], 0xffffffff
add esp, 4
movss xmm0, dword [ebp - 0x30]
mov ecx, 0x1029fff8
mov dword [ebp - 0x14], 0
movss dword [eax + 0x10], xmm0
push eax
push dword [ebp - 0x40]
mov dword [eax + 0x14], 0
push dword [ebp - 0x44]
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov word [eax + 0xc], 0
call fcn.1004a070
mov ecx, dword [ebp - 0x38]
mov dword [eax + 0x14], ecx
jmp 0x10076c1e
movzx eax, byte [esi + 8]
xor eax, 0x811c9dc5
mov edx, dword [0x10828c2c]
imul ecx, eax, 0x1000193
movzx eax, byte [esi + 9]
xor ecx, eax
movzx eax, byte [esi + 0xa]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [esi + 0xb]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul ecx, ecx, 0x1000193
and ecx, dword [0x10828c38]
mov eax, dword [edx + ecx*8]
cmp dword [edx + ecx*8 + 4], esi
jne 0x10076bf7
cmp eax, esi
jne 0x10076bee
mov dword [edx + ecx*8], ebx
mov dword [edx + ecx*8 + 4], ebx
jmp 0x10076c00
mov ebx, dword [esi + 4]
mov dword [edx + ecx*8 + 4], ebx
jmp 0x10076c00
cmp eax, esi
jne 0x10076c00
mov eax, dword [esi]
mov dword [edx + ecx*8], eax
mov ecx, dword [esi]
dec dword [0x10828c28]
mov eax, dword [esi + 4]
push 0x2c
push esi
mov dword [eax], ecx
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
call fcn.100eb0f7
add esp, 8
mov ebx, dword [0x10828c24]
mov esi, edi
cmp edi, ebx
jne 0x10076922
mov eax, dword [0x1029fff8]
mov esi, dword [eax]
cmp esi, eax
je 0x10077018
nop dword [eax]
mov edx, dword [esi + 0x14]
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x38], edx
imul eax, eax, 0x1000193
mov dword [ebp - 0x30], edx
xor ecx, eax
mov eax, edx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.10078330
mov ecx, dword [ebp - 0x38]
mov eax, dword [eax + 4]
test eax, eax
cmovne ebx, eax
mov eax, 0x536bc0
mov edi, ebx
call eax
test al, al
je 0x10076fca
mov ebx, dword [0x10828c24]
cmp edi, ebx
je 0x10076fd0
cmp byte [ebp - 0x29], 0
movss xmm0, dword [edi + 0xc]
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x10]
movss dword [0x10830a1c], xmm0
movss xmm0, dword [0x101b2874]
mov dword [0x10830a4c], eax
mov dword [0x1082988c], ecx
movss dword [ebp - 0x30], xmm0
je 0x10076cfa
movss xmm0, dword [0x101b28b4]
movss dword [ebp - 0x30], xmm0
test ecx, ecx
je 0x10076fd0
movss xmm0, dword [eax*8 + 0x101eed70]
mov ebx, dword [ebp - 0x38]
mov ecx, ebx
push 0
movss dword [0x10830a50], xmm0
movss xmm0, dword [eax*8 + 0x101eed74]
lea eax, [ebp - 0x1c]
push 8
push eax
mov eax, 0x5e4280
movss dword [0x10830a0c], xmm0
call eax
cmp dword [edi + 0x20], 1
movss xmm2, dword [0x10830a1c]
jne 0x10076d5f
movaps xmm0, xmm2
movss xmm1, dword [0x101b26e0]
divss xmm0, dword [0x101b2868]
subss xmm1, xmm0
jmp 0x10076d81
cmp dword [ebp - 0x48], ebx
jne 0x10076d6e
movss xmm1, dword [0x101b26c0]
jmp 0x10076d81
movaps xmm1, xmm2
divss xmm1, dword [0x101b2934]
addss xmm1, dword [0x101b26e0]
cmp byte [0x1020d67c], 0
movss xmm0, dword [0x10830a0c]
mulss xmm0, dword [0x101b26fc]
divss xmm2, xmm0
addss xmm2, xmm1
addss xmm2, dword [ebp - 0x14]
movss dword [ebp - 0x14], xmm2
jne 0x10076db5
cmp byte [0x1020d677], 0
jne 0x10076e15
call fcn.100d5340
cmp dword [eax], 0
je 0x10076dcf
call fcn.100d5340
mov eax, dword [eax]
cmp dword [eax + 0x14e0], 0
jne 0x10076e15
movss xmm0, dword [ebp - 0x1c]
lea eax, [ebp - 0x44]
push 0
push 0
push 0
push 1
push 0
push 0
movss dword [ebp - 0x44], xmm0
movss xmm0, dword [ebp - 0x18]
push 1
push eax
lea eax, [ebp - 0x5c]
movss dword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x14]
push eax
mov eax, 0x56a490
movss dword [ebp - 0x3c], xmm0
call eax
add esp, 0x24
test al, al
je 0x10076fca
push 1
push 1
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x1c]
push eax
mov eax, 0x70ce30
call eax
add esp, 0x18
test al, al
je 0x10076fca
movss xmm3, dword [0x10830a50]
divss xmm3, dword [0x101b2970]
movss xmm1, dword [0x10830a0c]
divss xmm1, dword [0x101b2968]
movd xmm0, dword [0xc17044]
movss xmm2, dword [0x10830a1c]
movss xmm7, dword [0x101b27b0]
comiss xmm2, xmm7
movss xmm5, dword [ebp - 0x30]
cvtdq2ps xmm0, xmm0
mulss xmm3, xmm0
movd xmm0, dword [0xc17048]
cvtdq2ps xmm0, xmm0
movss dword [0x10830a10], xmm3
movaps xmm4, xmm3
mulss xmm1, xmm0
movss dword [0x10830a54], xmm3
movss dword [0x108309f4], xmm1
movss dword [0x108309e8], xmm1
jbe 0x10076ed1
movaps xmm0, xmm2
subss xmm0, xmm7
divss xmm0, xmm5
mulss xmm0, xmm3
subss xmm4, xmm0
movss dword [0x10830a10], xmm4
movss xmm6, dword [0x101b27f8]
movaps xmm0, xmm3
divss xmm0, xmm6
comiss xmm0, xmm4
jbe 0x10076ef1
divss xmm3, xmm6
movss dword [0x10830a10], xmm3
comiss xmm2, xmm7
movaps xmm3, xmm1
jbe 0x10076f11
subss xmm2, xmm7
divss xmm2, xmm5
mulss xmm2, xmm1
subss xmm3, xmm2
movss dword [0x108309f4], xmm3
movaps xmm0, xmm1
divss xmm0, xmm6
comiss xmm0, xmm3
jbe 0x10076f29
divss xmm1, xmm6
movss dword [0x108309f4], xmm1
mov eax, dword [0x1082988c]
movss xmm0, dword [ebp - 0x28]
mov ecx, dword [0xc97b24]
movss dword [0x10830a20], xmm0
push dword [eax]
movss xmm0, dword [ebp - 0x24]
mov eax, dword [ecx + 0x20]
push 1
movss dword [0x108309e4], xmm0
call eax
movss xmm3, dword [0x10830a20]
lea ecx, [ebp - 0x80]
movss xmm2, dword [0x108309e4]
movaps xmm0, xmm3
addss xmm0, dword [0x10830a10]
subss xmm3, dword [0x10830a10]
movss dword [esp + 4], xmm2
mov eax, 0x4041c0
mov dword [ebp - 0x34], 0xffffffff
movss dword [esp], xmm0
sub esp, 8
movss xmm0, dword [0x108309f4]
mulss xmm0, dword [0x101b27b0]
subss xmm2, xmm0
movss dword [esp + 4], xmm2
movss dword [esp], xmm3
call eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x80]
push eax
mov eax, 0x727be0
call eax
add esp, 8
mov ebx, dword [0x10828c24]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x10076ff6
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x10076ff2
cmp esi, dword [eax + 8]
jne 0x10076ff2
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x10076fe2
mov esi, eax
jmp 0x1007700c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x1007700c
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x10077000
cmp esi, dword [0x1029fff8]
jne 0x10076c40
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100eaab6
mov esp, ebp
pop ebp
ret
call fcn.1003f420
int3