Function at 0x10093fb0
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 0x100dda81
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0xc0
mov eax, dword [ebx + 0x14]
push esi
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebx + 0x18]
push edi
mov dword [ebp - 0x3c], edx
mov edx, dword [ebx + 0xc]
mov dword [ebp - 0x34], ecx
push ecx
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x15], 0
call fcn.1009c1e0
add esp, 4
mov dword [ebp - 4], 0
mov esi, dword [0x1012a528]
mov edi, dword [0x1012a524]
mov ecx, dword [0x1012a520]
dec ecx
movd xmm2, dword [0x1012a55c]
cvtdq2ps xmm2, xmm2
lea edx, [esi + edi]
mov dword [ebp - 0x2c], edx
dec edx
mov eax, edx
and edx, 3
shr eax, 2
and ecx, eax
mov eax, dword [0x1012a51c]
movss dword [ebp - 0x30], xmm2
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x40], eax
lea eax, [esi - 1]
mov esi, dword [0x1012a514]
test eax, eax
mov dword [0x1012a528], eax
cmove edi, ecx
mov ecx, dword [0x1012a50c]
mov dword [0x1012a524], edi
dec ecx
mov edi, dword [0x1012a510]
lea edx, [esi + edi]
mov dword [ebp - 0x2c], edx
dec edx
mov eax, edx
mov dword [ebp - 0x2c], 0x41000000
shr eax, 1
and edx, 1
and ecx, eax
mov eax, dword [0x1012a508]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
movss xmm1, dword [eax + edx*8]
movss xmm0, dword [eax + edx*8 + 4]
lea eax, [esi - 1]
addss xmm0, dword [0x1012a53c]
movss dword [ebp - 0x38], xmm1
test eax, eax
addss xmm1, dword [0x1012a538]
mov dword [0x1012a514], eax
cmove edi, ecx
mov eax, dword [ebp - 0x84]
subss xmm0, dword [0x100f8730]
mov dword [0x1012a510], edi
subss xmm1, dword [0x100f864c]
movss dword [ebp - 0x20], xmm0
movss dword [ebp - 0x1c], xmm1
cmp dword [eax + 0x10], ecx
je 0x100943db
push dword [ebp - 0x34]
xorps xmm0, xmm0
mov dword [ebp - 0x50], ecx
push dword [ebx + 0x14]
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0x60]
movups xmmword [ebp - 0x60], xmm0
call fcn.10049b80
mov ecx, dword [ebx + 8]
mov byte [ebp - 4], 1
mov edx, dword [ecx]
lea ecx, [ebp - 0x9c]
call fcn.1005c220
mov esi, eax
mov byte [ebp - 4], 2
mov eax, 0x7fffffff
mov ecx, dword [ebp - 0x84]
mov edx, dword [ecx + 0x10]
sub eax, edx
cmp eax, 2
jb 0x100946e5
cmp dword [ecx + 0x14], 0x10
jb 0x10094150
mov ecx, dword [ecx]
push 2
push 0x100f3ad4
push edx
push ecx
push ecx
push dword [ebp - 0x38]
lea ecx, [ebp - 0xcc]
call fcn.10054410
push esi
lea eax, [ebp - 0xcc]
mov byte [ebp - 4], 3
push eax
push dword [ebp - 0x38]
lea ecx, [ebp - 0xb4]
call fcn.10054220
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0xb4]
push eax
push dword [ebp - 0x38]
lea ecx, [ebp - 0x78]
call fcn.10054220
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0xa0]
cmp ecx, 0x10
jb 0x100941da
mov edx, dword [ebp - 0xb4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100941d0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100946ea
push ecx
push edx
call fcn.100b0b76
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0xb8]
cmp ecx, 0x10
jb 0x10094218
mov edx, dword [ebp - 0xcc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009420e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100946ea
push ecx
push edx
call fcn.100b0b76
add esp, 8
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x88]
cmp ecx, 0x10
jb 0x10094256
mov edx, dword [ebp - 0x9c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009424c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100946ea
push ecx
push edx
call fcn.100b0b76
add esp, 8
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0xf
mov byte [ebp - 0x9c], 0
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x10
jb 0x100942a9
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009429f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100946ea
push ecx
push edx
call fcn.100b0b76
add esp, 8
cmp dword [ebp - 0x64], 0x10
lea esi, [ebp - 0x58]
mov edx, dword [ebp - 0x40]
lea ecx, [ebp - 0x78]
cmovae ecx, dword [ebp - 0x78]
xorps xmm0, xmm0
push 0
push 0x400
mov eax, dword [edx]
push esi
push dword [ebp - 0x68]
movups xmmword [ebp - 0x58], xmm0
push ecx
push 0
push edx
call dword [eax + 0x38]
mov esi, dword [ebp - 0x4c]
lea eax, [ebp - 0x78]
sub esi, dword [ebp - 0x54]
xorps xmm0, xmm0
cmp dword [ebp - 0x64], 0x10
mov cx, word [0x1010e582]
cmovae eax, dword [ebp - 0x78]
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x14], eax
movss xmm0, dword [ebp - 0x20]
subss xmm0, dword [0x100f864c]
movzx eax, cx
movzx edi, ch
mov dword [ebp - 0x28], eax
mov eax, dword [0x1010e580]
cvttss2si ecx, xmm0
mov dword [ebp - 0x34], eax
shr eax, 8
mov dword [ebp - 0x44], eax
movss xmm0, dword [ebp - 0x1c]
subss xmm0, dword [0x100f86dc]
push ecx
cvttss2si eax, xmm0
push eax
push ecx
push eax
lea eax, [ebp - 0x58]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov edx, dword [ebp - 0x40]
shl edi, 8
mov eax, dword [edx]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp - 0x34]
movzx eax, al
or edi, eax
mov eax, dword [ebp - 0x44]
movzx eax, al
shl edi, 8
or edi, eax
mov eax, dword [ebp - 0x28]
movzx eax, al
shl edi, 8
or edi, eax
lea eax, [ebp - 0x58]
push edi
push 0x100
push eax
push 0xffffffffffffffff
push dword [ebp - 0x14]
push 0
push edx
call ecx
movd xmm0, esi
cvtdq2ps xmm0, xmm0
addss xmm0, dword [0x100f873c]
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x64]
addss xmm0, dword [ebp - 0x20]
movss dword [ebp - 0x20], xmm0
cmp ecx, 0x10
jb 0x100943d1
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100943c2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100946ef
push ecx
push edx
call fcn.100b0b76
movss xmm0, dword [ebp - 0x20]
add esp, 8
movss xmm2, dword [ebp - 0x30]
movss xmm1, dword [ebp - 0x1c]
push dword [0x1010e584]
mov cl, 1
push dword [0x1010e588]
sub esp, 8
mov eax, esp
sub esp, 8
movss dword [eax], xmm2
mov dword [eax + 4], 0x41000000
mov eax, esp
movss dword [eax], xmm1
movss dword [eax + 4], xmm0
call fcn.1006c3c0
movss xmm0, dword [ebp - 0x30]
add esp, 0x18
subss xmm0, dword [0x100f8708]
push dword [0x1010e58c]
sub esp, 8
movss dword [ebp - 0x14], xmm0
mov eax, esp
sub esp, 8
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x1c]
addss xmm0, dword [0x100f86dc]
mov dword [eax + 4], 0x40c00000
mov eax, esp
movss dword [ebp - 0x34], xmm0
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x20]
addss xmm0, dword [0x100f86dc]
movss dword [eax + 4], xmm0
call fcn.1006c2d0
mov ecx, dword [ebp - 0x48]
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0x3c]
add esp, 0x14
sub eax, ecx
movss xmm1, dword [ebp - 0x14]
mov dword [ebp - 0x3c], eax
movd xmm2, ecx
lea ecx, [ebp - 0x28]
cvtdq2ps xmm2, xmm2
mov dword [ebp - 0x14], 0
movd xmm3, eax
mov eax, dword [ebx + 8]
cvtdq2ps xmm3, xmm3
movd xmm0, dword [eax]
cvtdq2ps xmm0, xmm0
push dword [0x1010e584]
subss xmm0, xmm2
movss dword [ebp - 0x44], xmm1
push dword [0x1010e588]
xorps xmm2, xmm2
divss xmm0, xmm3
mulss xmm0, xmm1
comiss xmm2, xmm0
movss dword [ebp - 0x28], xmm0
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x44]
comiss xmm0, xmm1
seta al
test al, al
cmove ecx, edx
sub esp, 8
mov eax, esp
sub esp, 8
movss xmm0, dword [ecx]
mov cl, 1
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x34]
mov dword [eax + 4], 0x41000000
mov eax, esp
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x20]
addss xmm0, xmm2
movss dword [eax + 4], xmm0
call fcn.1006c3c0
movss xmm2, dword [0x1012a598]
add esp, 0x18
cmp dword [0x1012a500], 0
movss xmm0, dword [ebp - 0x1c]
movss xmm1, dword [ebp - 0x20]
movss xmm4, dword [ebp - 0x30]
jne 0x100945b7
comiss xmm2, xmm0
jbe 0x100945b7
movss xmm3, dword [0x1012a59c]
comiss xmm3, xmm1
jbe 0x100945b7
movss xmm5, dword [0x100f8750]
addss xmm0, xmm4
comiss xmm0, xmm2
jbe 0x100945b0
movaps xmm0, xmm1
addss xmm0, xmm5
comiss xmm0, xmm3
jbe 0x100945b0
cmp byte [0x10133421], 0
je 0x100945b0
cmp byte [0x10133521], 0
jne 0x100945b0
mov ecx, dword [ebx + 0xc]
mov al, byte [ecx]
test al, al
je 0x100945a1
movsx eax, al
inc ecx
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
call fcn.1009c420
mov dword [0x1012a500], eax
jmp 0x10094686
mov dword [0x1012a500], 0x811c9dc5
jmp 0x10094686
movss xmm0, dword [ebp - 0x1c]
jmp 0x100945bf
movss xmm5, dword [0x100f8750]
mov edi, dword [ebx + 0xc]
mov al, byte [edi]
movsx esi, al
xor esi, 0x811c9dc5
test al, al
je 0x100945e5
imul edx, esi, 0x1000193
lea ecx, [edi + 1]
call fcn.1009c420
mov ecx, eax
mov al, byte [edi]
jmp 0x100945ea
mov ecx, 0x811c9dc5
cmp dword [0x1012a500], ecx
jne 0x1009464e
cmp byte [0x10133421], 0
je 0x1009464e
subss xmm2, xmm0
mov dword [ebp - 0x14], 0
xorps xmm0, xmm0
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0x14]
comiss xmm0, xmm2
movss dword [ebp - 0x28], xmm2
cmovbe ecx, eax
lea eax, [ebp - 0x30]
comiss xmm2, xmm4
movd xmm2, dword [ebp - 0x3c]
cvtdq2ps xmm2, xmm2
cmovbe eax, ecx
mov ecx, dword [ebx + 8]
movss xmm0, dword [eax]
divss xmm0, xmm4
mulss xmm0, xmm2
movd xmm2, dword [ebp - 0x48]
cvtdq2ps xmm2, xmm2
addss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [ecx], eax
jmp 0x10094686
test al, al
je 0x10094662
imul edx, esi, 0x1000193
lea ecx, [edi + 1]
call fcn.1009c420
jmp 0x10094667
mov eax, 0x811c9dc5
cmp dword [0x1012a500], eax
jne 0x10094686
cmp byte [0x10133421], 0
jne 0x10094686
mov dword [0x1012a500], 0
mov byte [ebp - 0x15], 1
subss xmm1, dword [0x1012a53c]
movd xmm0, dword [0x100f25b0]
sub esp, 8
cvtdq2ps xmm0, xmm0
mov edx, esp
addss xmm1, xmm5
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x38]
movss dword [edx], xmm0
movss dword [edx + 4], xmm1
call fcn.1009c440
mov ecx, dword [ebp - 0x40]
add esp, 8
call fcn.1009c4f0
lea ecx, [ebp - 0x84]
call fcn.10053c70
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp - 0x15]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.100476d0
call fcn.100b7b82
call fcn.100b7b82
int3