Function at 0x1009ae60
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 0x100dde72
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x88
mov dword [ebp - 0x4c], 0
push esi
mov esi, dword [0x1012a528]
push edi
mov edi, dword [0x1012a524]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [0x1012a520]
dec ecx
lea edx, [esi + edi]
mov dword [ebp - 0x34], edx
dec edx
mov eax, edx
and edx, 3
shr eax, 2
and ecx, eax
mov eax, dword [0x1012a51c]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x44], 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 - 0x34], edx
dec edx
mov eax, edx
and edx, 1
shr eax, 1
and ecx, eax
mov eax, dword [0x1012a508]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
push ecx
movss xmm0, dword [eax + edx*8]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [eax + edx*8 + 4]
lea eax, [esi - 1]
mov edx, dword [ebx + 8]
test eax, eax
movss dword [ebp - 0x14], xmm0
cmove edi, ecx
mov dword [0x1012a514], eax
lea ecx, [ebp - 0x7c]
mov dword [0x1012a510], edi
call fcn.1009c1e0
add esp, 4
movss xmm2, dword [ebp - 0x50]
xorps xmm0, xmm0
mov dword [ebp - 4], 0
addss xmm2, dword [0x1012a538]
movd xmm1, dword [0x1012a55c]
mov ecx, dword [ebp - 0x7c]
cvtdq2ps xmm1, xmm1
mov edx, dword [ecx + 0x10]
subss xmm2, xmm0
movss xmm0, dword [ebp - 0x14]
movss dword [ebp - 0x24], xmm1
addss xmm0, dword [0x1012a53c]
movss dword [ebp - 0x18], xmm2
subss xmm0, dword [0x100f8730]
movss dword [ebp - 0x14], xmm0
test edx, edx
je 0x1009b097
cmp dword [ecx + 0x14], 0x10
jb 0x1009afa9
mov ecx, dword [ecx]
mov esi, dword [ebp - 0x44]
lea edi, [ebp - 0x40]
push 0
push 0x400
push edi
mov eax, dword [esi]
xorps xmm0, xmm0
push edx
push ecx
push 0
push esi
movups xmmword [ebp - 0x40], xmm0
call dword [eax + 0x38]
mov eax, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x34]
sub esi, dword [ebp - 0x3c]
mov dword [ebp - 0x28], eax
cmp dword [eax + 0x14], 0x10
jb 0x1009afdf
mov eax, dword [eax]
mov dword [ebp - 0x28], eax
mov cx, word [0x1010e582]
xorps xmm0, xmm0
movups xmmword [ebp - 0x40], xmm0
movzx eax, cx
movss xmm0, dword [ebp - 0x14]
xorps xmm1, xmm1
subss xmm0, xmm1
movzx edi, ch
mov dword [ebp - 0x2c], eax
mov eax, dword [0x1010e580]
mov dword [ebp - 0x30], eax
shr eax, 8
cvttss2si ecx, xmm0
mov dword [ebp - 0x48], eax
movss xmm0, dword [ebp - 0x18]
subss xmm0, dword [0x100f86dc]
push ecx
cvttss2si eax, xmm0
push eax
push ecx
push eax
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov edx, dword [ebp - 0x44]
shl edi, 8
mov eax, dword [edx]
mov ecx, dword [eax + 0x38]
mov eax, dword [ebp - 0x30]
movzx eax, al
or edi, eax
mov eax, dword [ebp - 0x48]
movzx eax, al
shl edi, 8
or edi, eax
mov eax, dword [ebp - 0x2c]
movzx eax, al
shl edi, 8
or edi, eax
lea eax, [ebp - 0x40]
push edi
push 0x100
push eax
push 0xffffffffffffffff
push dword [ebp - 0x28]
push 0
push edx
call ecx
movss xmm0, dword [ebp - 0x14]
movss xmm2, dword [ebp - 0x18]
movd xmm1, esi
cvtdq2ps xmm1, xmm1
addss xmm1, dword [0x100f873c]
addss xmm0, xmm1
movss xmm1, dword [ebp - 0x24]
movss dword [ebp - 0x14], xmm0
mov ecx, dword [ebx + 8]
mov al, byte [ecx]
test al, al
je 0x1009b0b6
movsx eax, al
inc ecx
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
call fcn.1009c420
jmp 0x1009b0bb
mov eax, 0x811c9dc5
push dword [0x1010e584]
cmp dword [0x1012a500], eax
mov cl, 1
push dword [0x1010e588]
sete byte [ebp - 0x1d]
sub esp, 8
mov eax, esp
sub esp, 8
movss dword [eax], xmm1
mov dword [eax + 4], 0x41600000
mov eax, esp
movss dword [eax], xmm2
movss dword [eax + 4], xmm0
call fcn.1006c3c0
movss xmm0, dword [ebp - 0x24]
add esp, 0x18
subss xmm0, dword [0x100f8708]
push dword [0x1010e58c]
sub esp, 8
mov eax, esp
sub esp, 8
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x18]
addss xmm0, dword [0x100f86dc]
mov dword [eax + 4], 0x41400000
mov eax, esp
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x14]
addss xmm0, dword [0x100f86dc]
movss dword [eax + 4], xmm0
call fcn.1006c2d0
mov esi, dword [0x1012a500]
add esp, 0x14
movss xmm2, dword [0x1012a59c]
movss xmm3, dword [0x1012a598]
movss xmm0, dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x14]
movss xmm4, dword [ebp - 0x24]
test esi, esi
jne 0x1009b1e4
comiss xmm3, xmm0
jbe 0x1009b1e4
comiss xmm2, xmm1
jbe 0x1009b1e4
movss xmm5, dword [0x100f8760]
addss xmm0, xmm4
comiss xmm0, xmm3
jbe 0x1009b1ee
movaps xmm0, xmm1
addss xmm0, xmm5
comiss xmm0, xmm2
jbe 0x1009b1ee
cmp byte [0x10133421], 0
je 0x1009b1ee
cmp byte [0x10133521], 0
jne 0x1009b1ee
mov ecx, dword [ebx + 8]
mov al, byte [ecx]
test al, al
je 0x1009b1d5
movsx eax, al
inc ecx
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
call fcn.1009c420
mov dword [0x1012a500], eax
jmp 0x1009b42c
mov dword [0x1012a500], 0x811c9dc5
jmp 0x1009b42c
movss xmm5, dword [0x100f8760]
jmp 0x1009b1f3
movss xmm0, dword [ebp - 0x18]
mov ecx, dword [ebx + 8]
mov al, byte [ecx]
test al, al
je 0x1009b212
movsx eax, al
inc ecx
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
call fcn.1009c420
jmp 0x1009b217
mov eax, 0x811c9dc5
cmp esi, eax
jne 0x1009b42c
cmp byte [0x1013343b], 0
mov byte [0x1012a581], 1
je 0x1009b238
cmp byte [0x1013353b], 0
je 0x1009b27b
cmp byte [0x1013342d], 0
je 0x1009b24a
cmp byte [0x1013352d], 0
je 0x1009b27b
comiss xmm3, xmm0
jbe 0x1009b269
comiss xmm2, xmm1
jbe 0x1009b269
addss xmm0, xmm4
comiss xmm0, xmm3
jbe 0x1009b269
movaps xmm0, xmm1
addss xmm0, xmm5
comiss xmm0, xmm2
ja 0x1009b28a
cmp byte [0x10133421], 0
je 0x1009b28a
cmp byte [0x10133521], 0
jne 0x1009b28a
mov dword [0x1012a500], 0
jmp 0x1009b42c
cmp byte [0x10133428], 0
je 0x1009b2c1
cmp byte [0x10133528], 0
jne 0x1009b2c1
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x10]
lea edi, [ecx + 0x10]
test eax, eax
je 0x1009b2ca
cmp dword [ecx + 0x14], 0x10
lea edx, [eax - 1]
mov eax, ecx
jb 0x1009b2b6
mov eax, dword [ecx]
mov dword [edi], edx
mov byte [eax + edx], 0
jmp 0x1009b42c
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x10]
lea edi, [ecx + 0x10]
cmp eax, 0x10
jae 0x1009b42c
xor esi, esi
mov dword [ebp - 0x30], esi
nop dword [eax + eax]
lea edx, [esi + 0x20]
mov dword [ebp - 0x28], edx
cmp edx, 0x20
jle 0x1009b2f4
cmp edx, 0x30
jl 0x1009b417
cmp edx, 0x39
jle 0x1009b302
cmp edx, 0x41
jl 0x1009b417
lea eax, [edx - 0x5b]
cmp eax, 0x5e
jbe 0x1009b417
lea eax, [edx - 0x3a]
cmp eax, 0x20
ja 0x1009b39c
cmp byte [esi + 0x10133440], 0
je 0x1009b417
cmp byte [esi + 0x10133540], 0
jne 0x1009b417
cmp byte [0x10133430], 0
lea eax, [edx + 0x20]
movzx edx, dl
movzx eax, al
cmove edx, eax
mov dword [ebp - 0x48], edx
mov byte [ebp - 0x54], dl
mov edx, dword [edi]
cmp edx, dword [ecx + 0x14]
jae 0x1009b387
cmp dword [ecx + 0x14], 0x10
lea eax, [edx + 1]
mov dword [edi], eax
mov dword [ebp - 0x2c], ecx
jb 0x1009b374
mov ecx, dword [ecx]
mov eax, dword [ebp - 0x48]
mov byte [edx + ecx], al
mov byte [edx + ecx + 1], 0
jmp 0x1009b417
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x48]
mov byte [edx + ecx], al
mov byte [edx + ecx + 1], 0
jmp 0x1009b417
push dword [ebp - 0x54]
mov byte [ebp - 0x58], 0
push dword [ebp - 0x58]
push ecx
call fcn.10053f60
jmp 0x1009b417
cmp byte [esi + 0x10133440], 0
je 0x1009b417
cmp byte [esi + 0x10133540], 0
jne 0x1009b417
xor esi, esi
cmp dword [esi + 0x1010d100], edx
jne 0x1009b406
cmp byte [0x10133430], 0
lea eax, [esi + 0x1010d105]
jne 0x1009b3cd
lea eax, [esi + 0x1010d104]
mov al, byte [eax]
mov edx, dword [edi]
mov dword [ebp - 0x2c], eax
cmp edx, dword [ecx + 0x14]
jae 0x1009b3f5
cmp dword [ecx + 0x14], 0x10
lea eax, [edx + 1]
mov dword [edi], eax
mov eax, ecx
jb 0x1009b3e8
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x2c]
mov byte [eax + edx], cl
mov byte [eax + edx + 1], 0
jmp 0x1009b403
push eax
mov byte [ebp - 0x34], 0
push dword [ebp - 0x34]
push ecx
call fcn.10053f60
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x1c]
add esi, 8
cmp esi, 0x580
jb 0x1009b3b0
mov esi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x1c]
inc esi
mov dword [ebp - 0x30], esi
lea eax, [esi + 0x20]
cmp eax, 0xde
jle 0x1009b2e0
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x10], 0
jne 0x1009b474
mov ax, word [0x100f5eb8]
xorps xmm0, xmm0
movups xmmword [ebp - 0x70], xmm0
mov word [ebp - 0x70], ax
mov al, byte [0x100f5eba]
mov dword [ebp - 0x60], 3
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x6e], al
mov byte [ebp - 0x6d], 0
mov eax, 1
mov byte [ebp - 4], 1
lea edx, [ebp - 0x70]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x4c], eax
jmp 0x1009b494
push eax
lea ecx, [ebp - 0x94]
call fcn.10053b80
mov edx, eax
mov ecx, 2
mov dword [ebp - 4], 2
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x4c], ecx
cmp dword [edx + 0x14], 0x10
mov ecx, edx
jb 0x1009b49e
mov ecx, dword [edx]
push dword [edx + 0x10]
movss xmm0, dword [ebp - 0x24]
mov edx, 0xc
mulss xmm0, dword [0x100f86c4]
mov eax, dword [0x1010e598]
cmp byte [ebp - 0x1d], 0
mov esi, dword [ebp - 0x44]
cmovne eax, dword [0x1010e580]
addss xmm0, dword [ebp - 0x18]
push ecx
sub esp, 8
mov ecx, esp
push eax
movss dword [ecx], xmm0
movss xmm0, dword [ebp - 0x14]
addss xmm0, dword [0x100f874c]
movss dword [ecx + 4], xmm0
mov ecx, esi
call fcn.1006c810
mov dword [ebp - 4], 1
add esp, 0x14
mov eax, dword [ebp - 0x1c]
test al, 2
je 0x1009b558
mov ecx, dword [ebp - 0x80]
and eax, 0xfffffffd
mov dword [ebp - 0x1c], eax
cmp ecx, 0x10
jb 0x1009b540
mov edx, dword [ebp - 0x94]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009b533
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1009b5f4
push ecx
push edx
call fcn.100b0b76
mov eax, dword [ebp - 0x1c]
add esp, 8
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
mov dword [ebp - 4], 0
test al, 1
je 0x1009b593
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x1009b593
mov edx, dword [ebp - 0x70]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1009b589
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1009b5f4
push ecx
push edx
call fcn.100b0b76
add esp, 8
movss xmm1, dword [ebp - 0x14]
sub esp, 8
subss xmm1, dword [0x1012a53c]
movd xmm0, dword [0x100f25b0]
mov eax, esp
cvtdq2ps xmm0, xmm0
addss xmm1, dword [0x100f8760]
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x50]
movss dword [eax], xmm0
movss dword [eax + 4], xmm1
call fcn.1009c440
add esp, 8
mov ecx, esi
call fcn.1009c4f0
lea ecx, [ebp - 0x7c]
call fcn.10053c70
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.100b7b82
int3