Function at 0x10246190
Capabilities:
Hash data with crc32

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov edi, dword [0x1042dd60]
mov eax, dword [edi + 0x196c]
cmp eax, dword [edi + 0x1968]
je 0x10246992
mov eax, dword [edi + 0xd8]
test eax, eax
je 0x1024623f
movss xmm1, dword [edi + 0x2d0c]
movss xmm0, dword [0x10357548]
ucomiss xmm0, xmm1
jne 0x102461e4
movss xmm0, dword [edi + 0x2d04]
movss xmm1, dword [edi + 0x2d08]
jmp 0x10246218
movsd xmm0, qword [edi + 0x2d04]
movss xmm2, dword [edi + 0x2d10]
unpcklps xmm1, xmm2
subps xmm1, xmm0
mulps xmm1, xmm1
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
addss xmm2, xmm1
ucomiss xmm2, dword [0x10359138]
jbe 0x1024623f
movaps xmm1, xmm0
shufps xmm1, xmm0, 0x55
cvttss2si ecx, xmm1
cvttss2si edx, xmm0
push ecx
push edx
call eax
add esp, 8
mov eax, dword [edi + 0x2d04]
mov ecx, dword [edi + 0x2d08]
mov dword [edi + 0x2d10], ecx
mov dword [edi + 0x2d0c], eax
cmp dword [edi + 0x1998], 2
jl 0x1024625e
nop dword [eax + eax]
call fcn.102469a0
cmp dword [edi + 0x1998], 1
jg 0x10246250
mov byte [edi + 2], 0
mov eax, dword [edi + 0x19b4]
test eax, eax
je 0x10246276
cmp byte [eax + 0x7c], 0
jne 0x10246276
mov byte [eax + 0x7a], 0
call fcn.102469a0
cmp dword [edi + 0x1b14], 0
je 0x102465ab
mov esi, dword [0x1042dd60]
movss xmm0, dword [0x1035a620]
ucomiss xmm0, dword [esi + 0x1b20]
ja 0x102465ab
cmp dword [esi + 0x1b1c], 0
jne 0x1024635a
mov bl, 0x23
mov edx, 0x103a5269
mov eax, 0xffffffff
jmp 0x102462db
movzx ebp, bl
movzx ecx, al
shr eax, 8
xor ecx, ebp
xor eax, dword [ecx*4 + 0x10359ccc]
add edx, 1
mov bl, bh
test bh, bh
je 0x102462f7
mov bh, byte [edx - 1]
cmp bl, 0x23
jne 0x102462c0
cmp bh, 0x23
jne 0x102462c0
cmp byte [edx], 0x23
mov ecx, 0xffffffff
cmove eax, ecx
mov bh, 0x23
jmp 0x102462c0
not eax
mov ebx, dword [esi + 0x19a4]
mov ecx, dword [esi + 0x19ac]
mov dword [esp + 4], ecx
mov edx, ebx
mov dword [esp], ebx
test ebx, ebx
je 0x1024633d
mov ecx, dword [esp + 4]
mov ebx, dword [esp]
nop dword [eax]
mov edx, ebx
shr edx, 1
mov ebp, edx
not ebp
add ebp, ebx
cmp dword [ecx + edx*8], eax
cmovae ebp, edx
lea edx, [ecx + edx*8 + 8]
cmovb ecx, edx
mov ebx, ebp
test ebp, ebp
jne 0x10246320
mov edx, dword [esp]
mov ebx, dword [esp + 4]
lea ebx, [ebx + edx*8]
xor edx, edx
cmp ecx, ebx
je 0x10246354
cmp dword [ecx], eax
jne 0x10246354
mov edx, dword [ecx + 4]
mov dword [esi + 0x1b1c], edx
movss xmm0, dword [esi + 0x10]
movss xmm1, dword [esi + 0x14]
movss xmm2, dword [0x1035753c]
movaps xmm3, xmm1
mulss xmm3, xmm2
mulss xmm2, xmm0
movss dword [esi + 0x1a64], xmm2
movss dword [esi + 0x1a68], xmm3
movaps xmm2, xmmword [0x1035a630]
movups xmmword [esi + 0x1a6c], xmm2
movss xmm2, dword [0x103574f4]
mulss xmm1, xmm2
or byte [esi + 0x1a30], 0x11
mulss xmm0, xmm2
movss dword [esi + 0x1a40], xmm0
movss dword [esi + 0x1a44], xmm1
mov dword [esi + 0x1a48], 0x3f000000
mov dword [esi + 0x1a4c], 0x3f000000
mov dword [esi + 0x1a34], 1
movss xmm0, dword [esi + 0x151c]
movss xmm1, dword [esi + 0x1520]
addss xmm1, xmm1
addss xmm0, xmm0
movss dword [esp + 8], xmm0
movss dword [esp + 0xc], xmm1
lea eax, [esp + 8]
push eax
push 1
call fcn.102487f0
add esp, 8
push 0xc1347
push 0
push str.NavWindowingList
call fcn.10242a10
add esp, 0xc
mov ebp, dword [esi + 0x1980]
test ebp, ebp
jg 0x102464ee
call fcn.102469a0
mov eax, dword [0x1042dd60]
mov edx, dword [eax + 0x1aa4]
mov esi, dword [eax + 0x1aac]
add edx, 0xffffffff
lea ebx, [edx + edx*2]
mov ebp, dword [esi + ebx*4]
lea ecx, [ebp*2]
add ecx, ebp
mov ecx, dword [ecx*4 + 0x1035a184]
add ecx, eax
add ecx, 0x1518
mov dword [esp], ecx
mov ecx, 0x1f9bcd
bt ecx, ebp
jb 0x1024658b
mov ecx, 0x606432
bt ecx, ebp
jae 0x102465a5
movss xmm0, dword [esi + ebx*4 + 4]
mov ecx, dword [esp]
movss dword [ecx], xmm0
lea edx, [esi + ebx*4]
add edx, 8
add ecx, 4
jmp 0x10246594
mov edx, str._Untitled_
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
xor eax, eax
cmp dword [esi + 0x1b14], ebx
sete al
lea ecx, [esp + 8]
push ecx
push 0
push eax
push edx
call fcn.1027b4c0
add esp, 0x10
nop word cs:[eax + eax]
nop dword [eax + eax]
lea eax, [ebp - 1]
cmp ebp, 1
mov ebp, eax
jle 0x1024642f
mov eax, dword [esi + 0x1988]
mov ebx, dword [eax + ebp*4 - 4]
cmp byte [ebx + 0x7a], 0
je 0x102464e0
cmp dword [ebx + 0x2fc], ebx
jne 0x102464e0
mov ecx, dword [ebx + 8]
test ecx, 0x80000
jne 0x102464e0
mov eax, dword [ebx]
cmp eax, 0xffffffff
je 0x1024654e
mov dword [esp], eax
mov edx, eax
jmp 0x1024652e
cmp byte [edx + 1], 0x23
je 0x10246540
add edx, 1
cmp edx, 0xffffffff
je 0x1024653b
movzx eax, byte [edx]
cmp al, 0x23
je 0x10246520
test al, al
jne 0x10246526
jmp 0x10246540
mov edx, 0xffffffff
mov eax, dword [esp]
cmp eax, edx
je 0x1024654e
mov edx, eax
jmp 0x102464a5
mov edx, str._Popup_
test ecx, 0x4000000
jne 0x102464a5
test ecx, 0x400
je 0x102464a0
push str.MainMenuBar
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
add esp, 8
test eax, eax
jne 0x102464a0
mov edx, str._Main_menu_bar_
jmp 0x102464a5
lea edx, [esi + ebx*4]
add edx, 4
mov ecx, dword [esp]
movss xmm0, dword [edx]
movss dword [ecx], xmm0
mov edx, dword [eax + 0x1aa4]
add edx, 0xffffffff
mov dword [eax + 0x1aa4], edx
cmp byte [edi + 0x1d38], 0
je 0x102466df
mov al, byte [edi + 0x1d7e]
mov ecx, dword [edi + 0x1d58]
add ecx, 1
cmp ecx, dword [edi + 0x1968]
jge 0x102465f5
test byte [edi + 0x1d3c], 0x20
jne 0x10246603
mov ecx, dword [edi + 0x1d44]
mov edx, dword [0x1042dd60]
cmp byte [edx + ecx + 0xec], 0
sete cl
test al, al
je 0x102465fb
jmp 0x10246603
xor ecx, ecx
test al, al
jne 0x10246603
test cl, cl
je 0x102466b6
mov esi, dword [0x1042dd60]
mov byte [esi + 0x1d38], 0
xorps xmm0, xmm0
movups xmmword [esi + 0x1d5c], xmm0
movups xmmword [esi + 0x1d6c], xmm0
mov byte [esi + 0x1d7c], 0
movups xmmword [esi + 0x1d48], xmm0
mov dword [esi + 0x1d58], 0xffffffff
mov word [esi + 0x1d7d], 0
movaps xmm0, xmmword [0x1035a640]
movups xmmword [esi + 0x1d94], xmm0
mov dword [esi + 0x1da4], 0xffffffff
mov eax, dword [esi + 0x1db0]
test eax, eax
je 0x10246699
mov dword [esi + 0x1dac], 0
mov dword [esi + 0x1da8], 0
add dword [esi + 0x374], 0xffffffff
push dword [0x1042dd68]
push eax
call dword [0x103c5570]
add esp, 8
mov dword [esi + 0x1db0], 0
mov dword [esi + 0x1db8], 0
mov dword [esi + 0x1db4], 0
cmp byte [edi + 0x1d38], 0
je 0x102466df
mov eax, dword [edi + 0x1d40]
cmp eax, dword [edi + 0x1968]
jge 0x102466df
mov byte [edi + 0x1d39], 1
push 0x103ac11c
call fcn.10246e40
add esp, 4
mov byte [edi + 0x1d39], 0
mov byte [edi + 1], 0
mov eax, dword [edi + 0x1968]
mov dword [edi + 0x196c], eax
call fcn.1023e590
mov eax, dword [edi + 0x1990]
test eax, eax
jns 0x1024677c
mov eax, dword [0x1042dd60]
test eax, eax
je 0x1024670e
add dword [eax + 0x374], 1
push dword [0x1042dd68]
push 0
call dword [0x103c556c]
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x1994]
test eax, eax
je 0x1024676a
mov ecx, dword [edi + 0x198c]
shl ecx, 2
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x1994]
test eax, eax
je 0x1024675a
mov ecx, dword [0x1042dd60]
test ecx, ecx
je 0x1024675a
add dword [ecx + 0x374], 0xffffffff
push dword [0x1042dd68]
push eax
call dword [0x103c5570]
add esp, 8
mov dword [edi + 0x1994], esi
mov dword [edi + 0x1990], 0
xor eax, eax
mov dword [edi + 0x198c], 0
mov ebx, dword [edi + 0x1974]
cmp eax, ebx
jge 0x1024681b
lea eax, [ebx*4]
mov ecx, dword [0x1042dd60]
test ecx, ecx
je 0x102467ac
add dword [ecx + 0x374], 1
push dword [0x1042dd68]
push eax
call dword [0x103c556c]
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x1994]
test eax, eax
je 0x10246807
mov ecx, dword [edi + 0x198c]
shl ecx, 2
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x1994]
test eax, eax
je 0x102467f7
mov ecx, dword [0x1042dd60]
test ecx, ecx
je 0x102467f7
add dword [ecx + 0x374], 0xffffffff
push dword [0x1042dd68]
push eax
call dword [0x103c5570]
add esp, 8
mov dword [edi + 0x1994], esi
mov dword [edi + 0x1990], ebx
mov eax, ebx
mov ebx, dword [edi + 0x1974]
test ebx, ebx
je 0x10246863
lea esi, [edi + 0x198c]
xor ebp, ebp
jmp 0x10246844
mov ecx, esi
call fcn.10246e90
mov ebx, dword [edi + 0x1974]
add ebp, 1
cmp ebp, ebx
je 0x1024685b
mov eax, dword [edi + 0x197c]
mov edx, dword [eax + ebp*4]
cmp byte [edx + 0x7a], 0
je 0x10246830
test byte [edx + 0xb], 1
je 0x10246830
jmp 0x1024683d
mov eax, dword [edi + 0x1990]
jmp 0x10246865
xor ebx, ebx
mov ecx, dword [edi + 0x198c]
mov dword [edi + 0x198c], ebx
mov dword [edi + 0x1974], ecx
mov ecx, dword [edi + 0x1978]
mov dword [edi + 0x1990], ecx
mov dword [edi + 0x1978], eax
mov eax, dword [edi + 0x1994]
mov ecx, dword [edi + 0x197c]
mov dword [edi + 0x1994], ecx
mov dword [edi + 0x197c], eax
mov eax, dword [edi + 0x19b0]
mov dword [edi + 0x370], eax
mov eax, dword [edi + 0x98]
mov byte [eax], 0
mov dword [edi + 0xf8], 0
mov dword [edi + 0xf4], 0
cmp dword [edi + 0x150c], 0
jns 0x1024694e
mov eax, dword [0x1042dd60]
test eax, eax
je 0x102468e3
add dword [eax + 0x374], 1
push dword [0x1042dd68]
push 0
call dword [0x103c556c]
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x1510]
test eax, eax
je 0x1024693e
mov ecx, dword [edi + 0x1508]
add ecx, ecx
push ecx
push eax
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x1510]
test eax, eax
je 0x1024692e
mov ecx, dword [0x1042dd60]
test ecx, ecx
je 0x1024692e
add dword [ecx + 0x374], 0xffffffff
push dword [0x1042dd68]
push eax
call dword [0x103c5570]
add esp, 8
mov dword [edi + 0x1510], esi
mov dword [edi + 0x150c], 0
mov dword [edi + 0x1508], 0
xorps xmm0, xmm0
movups xmmword [edi + 0x300], xmm0
movups xmmword [edi + 0x310], xmm0
movups xmmword [edi + 0x320], xmm0
movups xmmword [edi + 0x330], xmm0
movups xmmword [edi + 0x340], xmm0
mov dword [edi + 0x354], 0
mov dword [edi + 0x350], 0
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret