Function at 0x10094710
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 0x100ddb1f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x170
push esi
push edi
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x2c], 0
mov edx, dword [ebx + 0x10]
push ecx
lea ecx, [ebp - 0xb8]
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 eax, [esi + edi]
lea edx, [eax - 1]
mov dword [ebp - 0x34], eax
mov eax, edx
and edx, 3
shr eax, 2
and ecx, eax
mov eax, dword [0x1012a51c]
movss dword [ebp - 0x38], 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 eax, [esi + edi]
lea edx, [eax - 1]
mov dword [ebp - 0x34], eax
mov eax, edx
mov dword [ebp - 0x34], 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 - 0x44], xmm1
test eax, eax
addss xmm1, dword [0x1012a538]
mov dword [0x1012a514], eax
cmove edi, ecx
mov eax, dword [ebp - 0xb8]
subss xmm0, dword [0x100f8730]
mov dword [0x1012a510], edi
subss xmm1, dword [0x100f864c]
movss dword [ebp - 0x1c], xmm0
movss dword [ebp - 0x20], xmm1
cmp dword [eax + 0x10], ecx
je 0x10094e31
mov dword [ebp - 0x168], 0x100f3e00
mov dword [ebp - 0x158], 0x100f5ecc
mov dword [ebp - 0xf8], ecx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0xd0], ecx
mov dword [ebp - method.std::basic_ios_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
push ecx
lea eax, [ebp - 0x150]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x168]
mov dword [ebp - 0x2c], 1
call fcn.10077ec0
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x168]
push 8
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x168]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [ebp + ecx - 0x16c], eax
mov dword [ebp - method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
call fcn.100b0717
add esp, 4
mov esi, eax
push 1
mov byte [ebp - 4], 3
call fcn.100b1b5e
mov dword [esi + 4], eax
add esp, 4
lea eax, [ebp - 0x14c]
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x144], eax
lea eax, [ebp - 0x148]
mov dword [ebp - 0x140], eax
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x134], eax
lea eax, [ebp - 0x138]
mov dword [ebp - 0x130], eax
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0x128]
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x12c], 0
mov dword [ebp - method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x114], 0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x158]
mov ecx, dword [eax + 4]
mov eax, dword [ebp + ecx - 0x144]
and eax, 0xffffefff
or eax, 0x2000
mov dword [ebp + ecx - 0x144], eax
mov eax, dword [ebx + 0xc]
cdq
push edx
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.100b2742
add esp, 0xc
lea edx, [ebp - 0x158]
mov ecx, dword [eax]
push dword [eax + 0xc]
push dword [eax + 8]
mov eax, dword [ebp - 0x158]
mov eax, dword [eax + 4]
add eax, edx
push eax
call ecx
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x158]
add esp, 0xc
movss xmm1, dword [eax]
call fcn.1009bc40
mov byte [ebp - 4], 5
xorps xmm0, xmm0
mov edx, dword [ebp - 0x114]
xor edi, edi
mov eax, edx
mov dword [ebp - 0x9c], edi
and al, 0x22
mov dword [ebp - 0x2c], 5
movq qword [ebp - 0x54], xmm0
mov esi, 0xf
mov dword [ebp - 0x98], esi
mov dword [ebp - 0x4c], edi
movups xmmword [ebp - 0xac], xmm0
mov byte [ebp - 0xac], 0
cmp al, 2
je 0x10094a7c
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax]
test ecx, ecx
je 0x10094a7c
mov eax, dword [ebp - 0x140]
cmp ecx, dword [ebp - 0x118]
cmovb ecx, dword [ebp - 0x118]
mov edx, dword [eax]
sub ecx, edx
jmp 0x10094aad
test dl, 4
jne 0x10094aa7
mov eax, dword [ebp - 0x134]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x10094aa7
mov eax, dword [ebp - 0x144]
mov edx, dword [eax]
mov eax, dword [ebp - 0x124]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x14]
sub ecx, edx
jmp 0x10094aad
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x54]
test edx, edx
je 0x10094aca
push ecx
push edx
lea ecx, [ebp - 0xac]
call fcn.100777a0
mov edi, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x60]
push dword [ebx + 0x1c]
xorps xmm0, xmm0
mov dword [ebp - 0x50], 0
push dword [ebx + 0x18]
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x4c], 0
call fcn.10049b80
mov byte [ebp - 4], 7
mov eax, 0x7fffffff
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ecx + 0x10]
sub eax, edx
cmp eax, 2
jb 0x1009513d
cmp dword [ecx + 0x14], 0x10
jb 0x10094b19
mov ecx, dword [ecx]
push 2
push 0x100f3ad4
push edx
push ecx
push ecx
push dword [ebp - 0x44]
lea ecx, [ebp - 0x7c]
call fcn.10054410
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xac]
mov edx, dword [ebp - 0x6c]
cmp esi, 0x10
mov eax, dword [ebp - 0x68]
cmovae ecx, dword [ebp - 0xac]
sub eax, edx
mov dword [ebp - 0x14], edx
push edi
push ecx
cmp edi, eax
ja 0x10094b7e
cmp dword [ebp - 0x68], 0x10
lea esi, [ebp - 0x7c]
lea eax, [edx + edi]
cmovae esi, dword [ebp - 0x7c]
mov dword [ebp - 0x6c], eax
lea eax, [esi + edx]
push eax
call fcn.100b3840
mov eax, dword [ebp - 0x14]
add esp, 0xc
add eax, esi
mov byte [eax + edi], 0
lea eax, [ebp - 0x7c]
jmp 0x10094b8e
mov byte [ebp - 0x14], 0
lea ecx, [ebp - 0x7c]
push dword [ebp - 0x14]
push edi
call fcn.100540a0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x180], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x170], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebp - 0x60]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x180]
push eax
push dword [ebp - 0x44]
lea ecx, [ebp - 0x94]
call fcn.10054220
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x16c]
cmp ecx, 0x10
jb 0x10094c11
mov edx, dword [ebp - 0x180]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10094c07
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10095142
push ecx
push edx
call fcn.100b0b76
add esp, 8
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x68]
cmp ecx, 0x10
jb 0x10094c49
mov edx, dword [ebp - 0x7c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10094c3f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10095142
push ecx
push edx
call fcn.100b0b76
add esp, 8
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x4c]
cmp ecx, 0x10
jb 0x10094c93
mov edx, dword [ebp - 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10094c89
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10095142
push ecx
push edx
call fcn.100b0b76
add esp, 8
cmp dword [ebp - 0x80], 0x10
lea edx, [ebp - 0x58]
mov edi, dword [ebp - 0x40]
lea ecx, [ebp - 0x94]
cmovae ecx, dword [ebp - 0x94]
xorps xmm0, xmm0
push 0
push 0x400
mov eax, dword [edi]
push edx
push dword [ebp - 0x84]
movups xmmword [ebp - 0x58], xmm0
push ecx
push 0
push edi
call dword [eax + 0x38]
mov esi, dword [ebp - 0x4c]
lea eax, [ebp - 0x94]
sub esi, dword [ebp - 0x54]
xorps xmm0, xmm0
cmp dword [ebp - 0x80], 0x10
movups xmmword [ebp - 0x58], xmm0
cmovae eax, dword [ebp - 0x94]
movss xmm0, dword [ebp - 0x1c]
subss xmm0, dword [0x100f864c]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x1010e580]
mov dword [ebp - 0x14], eax
cvttss2si ecx, xmm0
movss xmm0, dword [ebp - 0x20]
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 eax, dword [edi]
mov edi, dword [eax + 0x38]
mov eax, dword [ebp - 0x14]
mov ecx, eax
shr ecx, 8
movzx edx, cl
movzx ecx, al
shl ecx, 8
or edx, ecx
mov ecx, eax
shr ecx, 0x10
and eax, 0xff000000
shl edx, 8
movzx ecx, cl
or edx, ecx
or edx, eax
lea eax, [ebp - 0x58]
push edx
push 0x100
push eax
push 0xffffffffffffffff
push dword [ebp - 0x2c]
push 0
push dword [ebp - 0x40]
call edi
movd xmm0, esi
cvtdq2ps xmm0, xmm0
addss xmm0, dword [0x100f873c]
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x80]
addss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x1c], xmm0
cmp ecx, 0x10
jb 0x10094db7
mov edx, dword [ebp - 0x94]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10094dad
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10095142
push ecx
push edx
call fcn.100b0b76
add esp, 8
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
cmp ecx, 0x10
jb 0x10094e13
mov eax, dword [ebp - 0xac]
inc ecx
mov edx, eax
cmp ecx, 0x1000
jb 0x10094e09
mov eax, dword [edx - 4]
add ecx, 0x23
sub edx, eax
mov dword [ebp - 0x14], eax
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x10095142
mov eax, dword [ebp - 0x14]
push ecx
push eax
call fcn.100b0b76
add esp, 8
lea ecx, [ebp - 0x168]
mov byte [ebp - 4], 0
call fcn.10095150
movss xmm0, dword [ebp - 0x1c]
movss xmm1, dword [ebp - 0x20]
movss xmm2, dword [ebp - 0x38]
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 - 0x38]
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 - 0x20]
addss xmm0, dword [0x100f86dc]
mov dword [eax + 4], 0x40c00000
mov eax, esp
movss dword [ebp - 0x24], xmm0
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x1c]
addss xmm0, dword [0x100f86dc]
movss dword [eax + 4], xmm0
call fcn.1006c2d0
mov ecx, dword [ebp - 0x64]
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 - 0x2c]
cvtdq2ps xmm2, xmm2
mov dword [ebp - 0x14], 0
movd xmm3, eax
mov eax, dword [ebx + 8]
cvtdq2ps xmm3, xmm3
movss xmm0, dword [eax]
subss xmm0, xmm2
movss dword [ebp - 0x30], xmm1
push dword [0x1010e584]
xorps xmm2, xmm2
push dword [0x1010e588]
divss xmm0, xmm3
mulss xmm0, xmm1
comiss xmm2, xmm0
movss dword [ebp - 0x2c], xmm0
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x30]
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 - 0x24]
mov dword [eax + 4], 0x41000000
mov eax, esp
movss dword [eax], xmm0
movss xmm0, dword [ebp - 0x1c]
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 - 0x20]
movss xmm1, dword [ebp - 0x1c]
movss xmm4, dword [ebp - 0x38]
jne 0x1009500a
comiss xmm2, xmm0
jbe 0x1009500a
movss xmm3, dword [0x1012a59c]
comiss xmm3, xmm1
jbe 0x1009500a
movss xmm5, dword [0x100f8750]
addss xmm0, xmm4
comiss xmm0, xmm2
jbe 0x10095003
movaps xmm0, xmm1
addss xmm0, xmm5
comiss xmm0, xmm3
jbe 0x10095003
cmp byte [0x10133421], 0
je 0x10095003
cmp byte [0x10133521], 0
jne 0x10095003
mov ecx, dword [ebx + 0x10]
mov al, byte [ecx]
test al, al
je 0x10094ff4
movsx eax, al
inc ecx
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
call fcn.1009c420
mov dword [0x1012a500], eax
jmp 0x100950de
mov dword [0x1012a500], 0x811c9dc5
jmp 0x100950de
movss xmm0, dword [ebp - 0x20]
jmp 0x10095012
movss xmm5, dword [0x100f8750]
mov edi, dword [ebx + 0x10]
mov al, byte [edi]
movsx esi, al
test al, al
je 0x10095039
mov eax, esi
lea ecx, [edi + 1]
xor eax, 0x811c9dc5
imul edx, eax, 0x1000193
call fcn.1009c420
mov ecx, eax
mov al, byte [edi]
jmp 0x1009503e
mov ecx, 0x811c9dc5
cmp dword [0x1012a500], ecx
jne 0x100950a0
cmp byte [0x10133421], 0
je 0x100950a0
subss xmm2, xmm0
mov dword [ebp - 0x24], 0
xorps xmm0, xmm0
lea eax, [ebp - 0x30]
lea ecx, [ebp - 0x24]
comiss xmm0, xmm2
movss dword [ebp - 0x30], xmm2
cmovbe ecx, eax
lea eax, [ebp - 0x38]
comiss xmm2, xmm4
movd xmm2, dword [ebp - 0x3c]
cvtdq2ps xmm2, xmm2
cmovbe eax, ecx
movss xmm0, dword [eax]
divss xmm0, xmm4
mov eax, dword [ebx + 8]
mulss xmm0, xmm2
movd xmm2, dword [ebp - 0x64]
cvtdq2ps xmm2, xmm2
addss xmm0, xmm2
movss dword [eax], xmm0
jmp 0x100950de
test al, al
je 0x100950ba
xor esi, 0x811c9dc5
lea ecx, [edi + 1]
imul edx, esi, 0x1000193
call fcn.1009c420
jmp 0x100950bf
mov eax, 0x811c9dc5
cmp dword [0x1012a500], eax
jne 0x100950de
cmp byte [0x10133421], 0
jne 0x100950de
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 - 0x44]
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 - 0xb8]
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
int3