Function at 0x661768
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
mov ebx, eax
mov byte [ebp - 1], 0
mov eax, ebx
mov edx, dword [sym.StartupControl.exe__Scommondata_TsCommonData_]
call fcn.004c0b94
test al, al
je 0x661c41
mov dword [ebp - 0x14], ebx
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xa0]
test eax, eax
je 0x661c41
cmp byte [eax + 0xa8], 0
jne 0x661c41
lea edx, [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
call fcn.0066141c
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xa0]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x80], 0
jle 0x661c41
cmp dword [ebp - 0x10], 0
je 0x661c41
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x90], 0
je 0x661c41
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0x5c]
mov eax, dword [ebp - 0x1c]
add eax, 0x8c
call sym.StartupControl.exe__Sgraphutils_CheckBmp_qqrrp16Graphics_TBitmapp16Graphics_TBitmap
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x90]
call fcn.00502d6c
call fcn.004fdd24
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x8c]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x8c]
mov edx, dword [eax]
call dword [edx + 0x30]
push eax
push 0
push 0
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x8c]
call fcn.00502d6c
call fcn.004fdd24
push eax
call sub.GDI32.DLL_BitBlt
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x70]
sub eax, 1
jb 0x66186b
je 0x661880
dec eax
jne 0x661895
mov eax, dword [ebp - 0x1c]
fld qword [eax + 0x50]
mov eax, dword [ebp - 0x1c]
fsub qword [eax + 0x60]
mov eax, dword [ebp - 0x1c]
fstp qword [eax + 0x50]
wait
jmp 0x6618b9
mov eax, dword [ebp - 0x1c]
fld qword [eax + 0x50]
mov eax, dword [ebp - 0x1c]
fadd qword [eax + 0x60]
mov eax, dword [ebp - 0x1c]
fstp qword [eax + 0x50]
wait
jmp 0x6618b9
mov eax, dword [ebp - 0x1c]
fild dword [eax + 0x74]
mov eax, dword [ebp - 0x1c]
fild dword [eax + 0x80]
fdivp st(1)
fmul dword [0x661c4c]
fsubr dword [0x661c4c]
mov eax, dword [ebp - 0x1c]
fstp qword [eax + 0x50]
wait
mov eax, dword [ebp - 0x1c]
fld qword [eax + 0x50]
call fcn.004c0080
push eax
sar eax, 0x1f
cmp eax, edx
pop eax
je 0x6618d2
call fcn.004c0884
mov ecx, 0xff
xor edx, edx
call sym.StartupControl.exe__Acntutils_LimitIt_qqrxixixi
cmp eax, 0xff
jbe 0x6618ea
call fcn.004c0884
mov byte [ebp - 9], al
mov eax, dword [0x7ac72c]
mov eax, dword [eax + 8]
cmp byte [eax + 0x40], 0
je 0x6619f2
mov eax, dword [ebp - 0x14]
mov edx, dword [sym.StartupControl.exe__Scommondata_TsCtrlSkinData_]
call fcn.004c0b94
test al, al
je 0x6619f2
mov eax, dword [ebp - 0x14]
cmp word [eax + 0xc2], 0
je 0x6619f2
mov byte [ebp - 0x15], 0
lea ecx, [ebp - 0x16]
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + 0xb4]
mov ebx, dword [ebp - 0x14]
mov eax, dword [ebx + 0xc4]
call dword [ebx + 0xc0]
cmp byte [ebp - 0x15], 0
je 0x6619f2
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x70]
sub eax, 2
jae 0x6619f2
mov eax, dword [ebp - 0x14]
mov byte [eax + 0xad], 1
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0xb4]
test ebx, ebx
je 0x6619b5
push 0
mov eax, ebx
mov ecx, 0x170000
mov edx, 0xa100
call fcn.0052bdd4
test eax, eax
jne 0x6619f2
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0x5c]
mov eax, ebx
call sym.StartupControl.exe__Acntutils_MkRect_qqrp16Graphics_TBitmap
lea eax, [ebp - 0x3c]
push eax
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
lea edx, [eax + 0x88]
mov eax, dword [ebp - 0x1c]
call sym.StartupControl.exe__Acthdtimer_TacThreadedTimer_CopyFrom_qqrrp16Graphics_TBitmapp16Graphics_TBitmaprx11Types_TRect
jmp 0x6619f2
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x60]
xor ecx, ecx
mov edx, 0x17
call sym.StartupControl.exe__Svclutils_SendAMessage_qqrxp6HWND__xii
test eax, eax
jne 0x6619f2
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0x5c]
mov eax, ebx
call sym.StartupControl.exe__Acntutils_MkRect_qqrp16Graphics_TBitmap
lea eax, [ebp - 0x3c]
push eax
mov ecx, ebx
mov eax, dword [ebp - 0x1c]
lea edx, [eax + 0x88]
mov eax, dword [ebp - 0x1c]
call sym.StartupControl.exe__Acthdtimer_TacThreadedTimer_CopyFrom_qqrrp16Graphics_TBitmapp16Graphics_TBitmaprx11Types_TRect
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax + 0x8c]
test ebx, ebx
je 0x661c41
lea edx, [ebp - 0x3c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x8c]
call sym.StartupControl.exe__Acntutils_MkRect_qqrp16Graphics_TBitmap
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x44]
xor edx, edx
xor eax, eax
call sym.StartupControl.exe__Acntutils_MkPoint_qqrxixi
lea eax, [ebp - 0x44]
push eax
movzx esi, byte [ebp - 9]
mov edx, 0xff
sub edx, esi
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x70], 1
sete al
mov ecx, esi
call sym.StartupControl.exe__Acntutils_iff_qqrxoxixi
mov ecx, eax
cmp ecx, 0xff
jbe 0x661a53
call fcn.004c0884
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x88]
mov eax, ebx
call sym.StartupControl.exe__Sgraphutils_SumBmpRect_qqrpx16Graphics_TBitmapt1xucrx11Types_TRectrx12Types_TPoint
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x74]
test eax, eax
je 0x661a77
cmp byte [eax + 0x30], 0
jne 0x661b12
mov eax, dword [ebp - 0x10]
push eax
call sub.USER32.DLL_GetWindowDC
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x661b0b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x7b9688]
mov eax, dword [eax]
cmp byte [eax + 0x31], 1
jne 0x661aa8
xor edx, edx
mov eax, dword [ebp - 8]
call sym.StartupControl.exe__Sgraphutils_acSetLayout_qqrp5HDC__ui
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x8c]
call fcn.00502d6c
call fcn.004fdd24
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x8c]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x8c]
mov edx, dword [eax]
call dword [edx + 0x30]
push eax
push 0
push 0
mov eax, dword [ebp - 8]
push eax
call sub.GDI32.DLL_BitBlt
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x661b12
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.USER32.DLL_ReleaseDC
ret
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xa0]
mov edx, dword [eax + 0x74]
cmp edx, dword [eax + 0x80]
jl 0x661c03
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x70]
test eax, eax
jne 0x661b86
cmp byte [ebp - 9], 0
jbe 0x661b86
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax + 0xa0]
mov eax, dword [ebx + 0x80]
cdq
push edx
push eax
mov eax, dword [ebp - 0x1c]
fld qword [eax + 0x50]
mov eax, dword [ebp - 0x1c]
fdiv qword [eax + 0x60]
call fcn.004c0080
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
sub eax, 1
sbb edx, 0
push eax
sar eax, 0x1f
cmp eax, edx
pop eax
je 0x661b7a
call fcn.004c0884
mov dword [ebx + 0x74], eax
mov byte [ebp - 1], 1
jmp 0x661c41
test eax, eax
jne 0x661b92
mov eax, dword [ebp - 0x14]
call sym.StartupControl.exe__Scommondata_StopTimer_qqrp24Scommondata_TsCommonData
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x70], 1
je 0x661ba8
mov eax, dword [ebp - 0x14]
add eax, 0x3c
xor edx, edx
call sym.StartupControl.exe__Acglow_HideGlow_qqrrio
mov eax, dword [ebp - 0x14]
mov edx, dword [sym.StartupControl.exe__Scommondata_TsCtrlSkinData_]
call fcn.004c0b94
test al, al
je 0x661c41
mov eax, dword [ebp - 0x14]
cmp word [eax + 0xc2], 0
je 0x661c41
mov eax, dword [ebp - 0x14]
mov byte [eax + 0xad], 1
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0xb4]
test eax, eax
je 0x661bec
mov edx, dword [eax]
call dword [edx + 0x84]
jmp 0x661c41
push 0x405
push 0
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x60]
push eax
call sub.USER32.DLL_RedrawWindow
jmp 0x661c41
mov byte [ebp - 1], 1
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x3c]
test eax, eax
jl 0x661c41
movzx edx, byte [ebp - 9]
call sym.StartupControl.exe__Acglow_SetGlowAlpha_qqriuc
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x70], 0
jne 0x661c41
cmp byte [ebp - 9], 0xa
jae 0x661c41
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x50], edx
mov dword [eax + 0x54], edx
mov eax, dword [ebp - 0x14]
add eax, 0x3c
xor edx, edx
call sym.StartupControl.exe__Acglow_HideGlow_qqrrio
movzx eax, byte [ebp - 1]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret