Function at 0x1001da90
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov ebx, dword [0x100aeea8]
xor eax, eax
push esi
push edi
mov dword [ebp - 8], ebx
mov dword [ebp - 0x14], eax
mov byte [ebp - 0xc], al
call fcn.10019640
mov edi, eax
test edi, edi
je 0x1001dac3
mov dword [ebx + 0x4954], 0
xor eax, eax
jmp 0x1001dac9
mov eax, dword [ebx + 0x4954]
cmp dword [ebx + 0x4958], 0
je 0x1001db12
test eax, eax
jne 0x1001db12
movss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x100a1928]
movss xmm1, dword [ebx + 0x4964]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, dword [ebx + 0x497c]
maxss xmm1, xmm0
movss dword [ebx + 0x4964], xmm1
jb 0x1001db12
comiss xmm0, xmm1
jb 0x1001db12
mov dword [ebx + 0x4958], eax
or edx, 0xffffffff
mov esi, 0x10098ea9
mov al, 0x23
or ebx, 0xffffffff
nop
cmp al, 0x23
jne 0x1001db2e
cmp byte [esi], al
jne 0x1001db2e
cmp byte [esi + 1], al
cmove edx, ebx
movzx ecx, dl
movzx eax, al
xor ecx, eax
shr edx, 8
mov al, byte [esi]
inc esi
xor edx, dword [ecx*4 + 0x100996f0]
test al, al
jne 0x1001db20
mov ebx, dword [ebp - 8]
not edx
mov dword [ebp - 0x10], edx
mov eax, dword [ebx + 8]
test al, 2
je 0x1001db60
test byte [ebx + 0xc], 1
mov byte [ebp - 3], 1
jne 0x1001db64
mov byte [ebp - 3], 0
and eax, 0xffffff01
mov dword [ebp - 0x18], eax
test edi, edi
jne 0x1001db8f
mov ecx, dword [ebx + 0x494c]
test ecx, ecx
je 0x1001db8f
push 0x1001
call fcn.10017a40
add esp, 4
mov byte [ebp - 1], 1
test al, al
jne 0x1001db93
mov byte [ebp - 1], 0
mov esi, dword [ebp - 0x10]
test edi, edi
jne 0x1001dbbb
mov ecx, dword [ebx + 0x4950]
test ecx, ecx
je 0x1001dbbb
push 0x1001
mov edx, esi
call fcn.10017a40
add esp, 4
mov byte [ebp - 2], 1
test al, al
jne 0x1001dbbf
mov byte [ebp - 2], 0
test edi, edi
jne 0x1001dbe9
cmp byte [ebp - 3], 0
je 0x1001dbe9
cmp dword [ebx + 0x4954], edi
jne 0x1001dbe9
push edi
xor edx, edx
mov ecx, 0x26b
call fcn.10015240
add esp, 4
test al, al
je 0x1001dbe9
mov cl, 1
jmp 0x1001dbeb
xor cl, cl
mov byte [ebp - 3], cl
test edi, edi
jne 0x1001dc0a
cmp dword [ebx + 0x4954], edi
jne 0x1001dc0a
cmp byte [ebp - 1], 0
jne 0x1001dc06
cmp byte [ebp - 2], 0
je 0x1001dc0a
mov al, 1
jmp 0x1001dc0c
xor al, al
mov byte [ebp - 4], al
test cl, cl
jne 0x1001dc1b
test al, al
je 0x1001dcd7
mov eax, dword [ebx + 0x47e8]
test eax, eax
jne 0x1001dc46
mov ecx, dword [ebx + 0x3e1c]
mov edx, 0x80000001
push 0xffffffffffffffff
dec ecx
call fcn.1001d910
mov cl, byte [ebp - 3]
add esp, 4
test eax, eax
je 0x1001dcd7
mov eax, dword [eax + 0x300]
mov dword [ebx + 0x4958], eax
mov dword [ebx + 0x4954], eax
mov dword [ebx + 0x4974], 0
mov eax, dword [ebx + 0x4974]
mov dword [ebx + 0x496c], eax
mov dword [ebx + 0x4978], 0
mov eax, dword [ebx + 0x4978]
mov dword [ebx + 0x4970], eax
movzx eax, byte [ebp - 4]
xor eax, 1
mov dword [ebx + 0x4964], 0
add eax, 2
mov dword [ebx + 0x4960], 0
cmp byte [ebp - 1], 0
mov byte [ebx + 0x4968], cl
mov dword [ebx + 0x4818], eax
jne 0x1001dcba
cmp byte [ebp - 2], 0
je 0x1001dcd7
push ecx
mov ecx, dword [ebx + 0x4950]
mov edx, esi
or ecx, dword [ebx + 0x494c]
and ecx, 0xf800
call fcn.100177b0
add esp, 4
movss xmm0, dword [ebx + 0x18]
addss xmm0, dword [ebx + 0x4960]
mov eax, dword [ebx + 0x4954]
movss dword [ebx + 0x4960], xmm0
test eax, eax
je 0x1001deb5
cmp dword [ebx + 0x4818], 3
jne 0x1001dded
subss xmm0, dword [0x100a1874]
xorps xmm1, xmm1
divss xmm0, dword [0x100a1860]
comiss xmm1, xmm0
ja 0x1001dd2b
movss xmm1, dword [0x100a18c4]
minss xmm1, xmm0
movss xmm0, dword [ebx + 0x4964]
xor edx, edx
maxss xmm0, xmm1
mov ecx, 0x273
push 1
movss dword [ebx + 0x4964], xmm0
call fcn.10015240
add esp, 4
xor edx, edx
mov ecx, 0x274
mov bl, al
push 1
call fcn.10015240
movzx ecx, al
add esp, 4
movzx eax, bl
sub eax, ecx
je 0x1001dd83
mov ecx, eax
call fcn.1001d9d0
mov ebx, dword [ebp - 8]
mov dword [ebx + 0x4964], 0x3f800000
jmp 0x1001dd86
mov ebx, dword [ebp - 8]
mov eax, dword [0x100aeea8]
cmp byte [eax + 0x348c], 0
je 0x1001dda5
cmp byte [eax + 0x43ec], 0
jne 0x1001dda5
mov eax, dword [ebx + 0x4954]
jmp 0x1001dded
movss xmm0, dword [0x100a18c4]
comiss xmm0, dword [ebx + 0x4964]
seta al
and al, byte [ebx + 0x4968]
mov byte [ebx + 0x4968], al
je 0x1001ddd4
cmp dword [ebx + 0x47e8], 0
je 0x1001ddd4
mov byte [ebp - 0xc], 1
jmp 0x1001dde1
test al, al
jne 0x1001dde1
mov eax, dword [ebx + 0x4954]
mov dword [ebp - 0x14], eax
mov dword [ebx + 0x4954], 0
xor eax, eax
test eax, eax
je 0x1001deb5
cmp dword [ebx + 0x4818], 2
jne 0x1001deb5
mov eax, dword [ebx + 0x494c]
mov esi, 0xf800
test eax, eax
mov ecx, esi
cmovne ecx, eax
mov eax, dword [ebx + 0x4950]
test eax, eax
cmovne esi, eax
and esi, ecx
and esi, 0xf800
jne 0x1001de40
push 0x2f7c
push str.c:coding_sourcespathstudypathstudyimguiimgui.cpp
push str.shared_mods___0
call fcn.1006b2f4
add esp, 0xc
movss xmm0, dword [ebx + 0x4960]
xorps xmm1, xmm1
subss xmm0, dword [0x100a1874]
divss xmm0, dword [0x100a1860]
comiss xmm1, xmm0
ja 0x1001de6c
movss xmm1, dword [0x100a18c4]
minss xmm1, xmm0
movss xmm0, dword [ebx + 0x4964]
mov al, byte [ebp - 1]
maxss xmm0, xmm1
movss dword [ebx + 0x4964], xmm0
test al, al
jne 0x1001dea3
cmp byte [ebp - 2], al
jne 0x1001dea3
mov eax, dword [ebx + 0xdd8]
and eax, esi
cmp eax, esi
je 0x1001deb5
mov eax, dword [ebx + 0x4954]
mov dword [ebp - 0x14], eax
jmp 0x1001deb5
movzx ecx, al
xor ecx, 1
lea ecx, [ecx*2 - 1]
call fcn.1001d9d0
cmp byte [ebp - 0x18], 0
je 0x1001dee2
push 0
or edx, 0xffffffff
mov ecx, 0x4000
call fcn.10015240
add esp, 4
test al, al
je 0x1001dee2
mov byte [ebx + 0x4968], 1
mov dword [ebx + 0x4818], 2
cmp byte [ebx + 0x4968], 0
je 0x1001e111
cmp dword [ebx + 0x4818], 2
jne 0x1001e111
cmp dword [ebx + 0x3770], 0
jg 0x1001df66
cmp byte [ebx + 0xdd4], 0
jne 0x1001df66
cmp byte [ebx + 0xdd5], 0
jne 0x1001df66
cmp byte [ebx + 0xdd7], 0
jne 0x1001df66
mov edi, dword [0x100aeea8]
mov edx, 0x4000
mov ecx, edi
call fcn.10006440
mov esi, eax
lea ecx, [esi - 0x200]
cmp ecx, 0x8b
jbe 0x1001df59
push 0xbc2
push str.c:coding_sourcespathstudypathstudyimguiimgui_internal.h
push str.IsNamedKey_key_
call fcn.1006b2f4
add esp, 0xc
lea eax, [esi + esi*2]
cmp dword [edi + eax*4 + 0x26e0], 0xffffffff
je 0x1001df6d
mov byte [ebx + 0x4968], 0
mov edi, dword [0x100aeea8]
mov edx, 0x4000
mov ecx, edi
call fcn.10006440
mov esi, eax
test esi, esi
js 0x1001df8d
cmp esi, 0x28c
jl 0x1001dfa4
push 0x1ee9
push str.c:coding_sourcespathstudypathstudyimguiimgui.cpp
push str.key___0__key___ImGuiKey_NamedKey_END
call fcn.1006b2f4
add esp, 0xc
cmp esi, 0x1ff
ja 0x1001dfb9
mov eax, dword [edi + esi*4 + 0xb8]
cmp eax, 0xffffffff
cmovne esi, eax
add esi, esi
xorps xmm0, xmm0
comiss xmm0, dword [edi + esi*8 + 0xde4]
ja 0x1001e06c
cmp byte [edi + esi*8 + 0xddc], 0
jne 0x1001e06c
mov edi, dword [0x100aeea8]
mov edx, 0x4000
mov ecx, edi
call fcn.10006440
mov esi, eax
lea ecx, [esi - 0x200]
cmp ecx, 0x8b
jbe 0x1001e013
push 0xbc2
push str.c:coding_sourcespathstudypathstudyimguiimgui_internal.h
push str.IsNamedKey_key_
call fcn.1006b2f4
add esp, 0xc
lea eax, [esi + esi*2]
cmp byte [edi + eax*4 + 0x26e8], 0
jne 0x1001e06c
cmp byte [ebx + 0x4968], 0
je 0x1001e06c
cmp dword [ebx + 0x3ea4], 0
je 0x1001e03b
cmp byte [ebx + 0x3eb1], 0
je 0x1001e06c
lea ecx, [ebx + 0x36a0]
call fcn.10015620
mov ecx, dword [ebp - 8]
mov bl, al
add ecx, 0xdb8
call fcn.10015620
mov ecx, dword [ebp - 0xc]
cmp al, bl
mov ebx, dword [ebp - 8]
mov eax, 1
movzx ecx, cl
cmove ecx, eax
mov dword [ebp - 0xc], ecx
mov edi, dword [0x100aeea8]
mov edx, 0x4000
mov ecx, edi
call fcn.10006440
mov esi, eax
test esi, esi
js 0x1001e08c
cmp esi, 0x28c
jl 0x1001e0a3
push 0x1ee9
push str.c:coding_sourcespathstudypathstudyimguiimgui.cpp
push str.key___0__key___ImGuiKey_NamedKey_END
call fcn.1006b2f4
add esp, 0xc
cmp esi, 0x1ff
ja 0x1001e0b8
mov eax, dword [edi + esi*4 + 0xb8]
cmp eax, 0xffffffff
cmovne esi, eax
add esi, esi
cmp byte [edi + esi*8 + 0xddc], 0
je 0x1001e10a
mov edi, dword [0x100aeea8]
mov edx, 0x4000
mov ecx, edi
call fcn.10006440
mov esi, eax
lea ecx, [esi - 0x200]
cmp ecx, 0x8b
jbe 0x1001e0fd
push 0xbc2
push str.c:coding_sourcespathstudypathstudyimguiimgui_internal.h
push str.IsNamedKey_key_
call fcn.1006b2f4
add esp, 0xc
lea eax, [esi + esi*2]
cmp byte [edi + eax*4 + 0x26e8], 0
je 0x1001e111
mov byte [ebx + 0x4968], 0
mov eax, dword [ebx + 0x4954]
test eax, eax
je 0x1001e29c
test byte [eax + 0xc], 4
jne 0x1001e29c
mov eax, dword [ebx + 0x4818]
xorps xmm2, xmm2
xorps xmm3, xmm3
cmp eax, 2
jne 0x1001e175
cmp byte [ebx + 0xdd5], 0
jne 0x1001e29c
push 0x204
push 0x203
push 0x202
mov edx, 0x201
lea ecx, [ebp - 0x1c]
call fcn.10014a50
add esp, 0xc
movss xmm2, dword [eax]
movss xmm3, dword [eax + 4]
mov eax, dword [ebx + 0x4818]
cmp eax, 3
jne 0x1001e1a2
push 0x27c
push 0x27b
push 0x27a
mov edx, 0x279
lea ecx, [ebp - 0x1c]
call fcn.10014a50
add esp, 0xc
movss xmm2, dword [eax]
movss xmm3, dword [eax + 4]
xorps xmm4, xmm4
ucomiss xmm2, xmm4
lahf
test ah, 0x44
jp 0x1001e1bb
ucomiss xmm3, xmm4
lahf
test ah, 0x44
jnp 0x1001e29c
movss xmm1, dword [ebx + 0x3c]
minss xmm1, dword [ebx + 0x40]
movss xmm0, dword [ebx + 0x18]
mulss xmm0, dword [0x100a197c]
mulss xmm1, xmm0
mulss xmm2, xmm1
mulss xmm3, xmm1
addss xmm2, dword [ebx + 0x496c]
addss xmm3, dword [ebx + 0x4970]
movss dword [ebx + 0x496c], xmm2
movss dword [ebx + 0x4970], xmm3
mov byte [ebx + 0x4823], 1
cvttss2si esi, dword [ebx + 0x496c]
cvttss2si edi, dword [ebx + 0x4970]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movd xmm1, edi
ucomiss xmm0, xmm4
cvtdq2ps xmm1, xmm1
lahf
test ah, 0x44
jp 0x1001e235
ucomiss xmm1, xmm4
lahf
test ah, 0x44
jnp 0x1001e29c
mov eax, dword [ebx + 0x4954]
lea edx, [ebp - 0x1c]
push 1
mov ecx, dword [eax + 0x300]
addss xmm0, dword [ecx + 0x14]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [ecx + 0x18]
addss xmm0, xmm1
movss dword [ebp - 0x18], xmm0
call fcn.100142e0
movss xmm0, dword [ebx + 0x496c]
add esp, 4
movd xmm1, esi
cvtdq2ps xmm1, xmm1
subss xmm0, xmm1
movd xmm1, edi
cvtdq2ps xmm1, xmm1
movss dword [ebx + 0x496c], xmm0
movss xmm0, dword [ebx + 0x4970]
subss xmm0, xmm1
movss dword [ebx + 0x4970], xmm0
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x1001e31e
mov eax, dword [ebx + 0x47e8]
test eax, eax
je 0x1001e2b5
cmp esi, dword [eax + 0x300]
je 0x1001e314
xor edx, edx
xor ecx, ecx
call fcn.1000a800
mov eax, dword [0x100aeea8]
xor dl, dl
mov ecx, esi
mov word [eax + 0x4821], 1
mov byte [eax + 0x4823], 1
call fcn.10019850
mov edx, 1
mov ecx, esi
call fcn.10013a20
mov esi, dword [ebx + 0x47e8]
cmp dword [esi + 0x314], 0
jne 0x1001e300
xor dl, dl
mov ecx, esi
call fcn.1001b450
cmp word [esi + 0x14e], 2
jne 0x1001e314
mov dword [ebx + 0x481c], 1
mov dword [ebx + 0x4954], 0
cmp byte [ebp - 0xc], 0
je 0x1001e3d8
cmp dword [ebx + 0x47e8], 0
je 0x1001e3d8
xor edx, edx
xor ecx, ecx
call fcn.1000a800
mov edi, dword [ebx + 0x47e8]
mov esi, edi
cmp dword [esi + 0x2f8], 0
lea ecx, [esi + 0x2f8]
je 0x1001e37e
test byte [esi + 0x14c], 2
jne 0x1001e37e
mov eax, dword [esi + 0xc]
and eax, 0x15000000
cmp eax, 0x1000000
jne 0x1001e37e
mov esi, dword [ecx]
cmp dword [esi + 0x2f8], 0
lea ecx, [esi + 0x2f8]
jne 0x1001e355
cmp esi, edi
je 0x1001e397
xor edx, edx
mov ecx, esi
call fcn.10013a20
mov dword [esi + 0x310], edi
mov edi, dword [ebx + 0x47e8]
mov edx, dword [ebx + 0x481c]
xor esi, esi
mov al, byte [edi + 0x14c]
mov ecx, edx
xor ecx, 1
and al, 2
cmove ecx, esi
cmp ecx, edx
je 0x1001e3d8
cmp ecx, 1
jne 0x1001e3be
mov dword [edi + 0x318], esi
call fcn.1001b360
mov eax, dword [0x100aeea8]
mov word [eax + 0x4821], 1
mov byte [eax + 0x4823], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret