Function at 0x40c51e
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x254
push ebx
push esi
push edi
push 0x150
mov ebx, eax
xor edi, edi
lea eax, [ebp - 0x1b4]
push edi
mov esi, 0x154
push eax
mov dword [ebp - 0x1b8], esi
call fcn.00416960
add esp, 0xc
push edi
lea eax, [ebp - 0x1b8]
push eax
push esi
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
cmp eax, edi
jne 0x40c573
push str.bRet
push edi
push 0xbb9
jmp 0x40c66b
push 0x38
lea eax, [ebp - 0x58]
push edi
push eax
mov dword [ebp - 0x5c], edi
call fcn.00416960
lea esi, [ebx + 0xa4]
add esp, 0xc
cmp dword [esi], edi
je 0x40c598
lea eax, [ebp - 0x5c]
push eax
call fcn.0040cc6e
mov eax, dword [ebp - 0x5c]
cmp eax, dword [ebp - 0x118]
jne 0x40c64c
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x114]
jne 0x40c64c
mov eax, dword [ebp - 0x54]
cmp eax, dword [ebp - 0x110]
jne 0x40c64c
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x10c]
jne 0x40c64c
mov eax, dword [ebp - 0x4c]
cmp eax, dword [ebp - 0x108]
jne 0x40c64c
mov al, byte [ebp - 0x48]
cmp al, byte [ebp - 0x104]
jne 0x40c64c
mov al, byte [ebp - 0x47]
cmp al, byte [ebp - 0x103]
jne 0x40c64c
mov al, byte [ebp - 0x46]
cmp al, byte [ebp - 0x102]
jne 0x40c64c
mov al, byte [ebp - 0x45]
cmp al, byte [ebp - 0x101]
jne 0x40c64c
mov al, byte [ebp - 0x44]
cmp al, byte [ebp - 0x100]
jne 0x40c64c
mov al, byte [ebp - 0x43]
cmp al, byte [ebp - 0xff]
jne 0x40c64c
mov al, byte [ebp - 0x42]
cmp al, byte [ebp - 0xfe]
jne 0x40c64c
mov al, byte [ebp - 0x41]
cmp al, byte [ebp - 0xfd]
jne 0x40c64c
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x40]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x40c72c
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov dword [ebp - 4], eax
cmp eax, edi
jne 0x40c689
push str.hFontMenu___0
push edi
push 0xbcf
push str.E:MyGitmylibraryPeMemoryRunPeMemoryRun2wtl_atlctrlw.h
push 2
call fcn.00415b00
add esp, 0x14
cmp eax, 1
jne 0x40c72c
int3
cmp dword [esi], edi
je 0x40c692
call fcn.004095ab
mov eax, dword [esi]
cmp eax, edi
je 0x40c6a4
cmp eax, dword [ebp - 4]
je 0x40c6a4
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 4]
mov edi, dword [sym.imp.USER32.dll_IsWindow]
mov dword [esi], eax
lea esi, [ebx + 4]
push dword [esi]
mov dword [ebp - 4], eax
call edi
test eax, eax
jne 0x40c6dd
push str.::IsWindow_m_hWnd_
push eax
push 0x3cd
push 0x434f18
push 2
call fcn.00415b00
add esp, 0x14
cmp eax, 1
jne 0x40c6dd
int3
push 1
push dword [ebp - 4]
push 0x30
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageA]
call fcn.0040cd3d
push dword [esi]
call edi
test eax, eax
jne 0x40c719
push str.::IsWindow_m_hWnd_
push eax
push 0x176e
push str.E:MyGitmylibraryPeMemoryRunPeMemoryRun2wtl_atlctrls.h
push 2
call fcn.00415b00
add esp, 0x14
cmp eax, 1
jne 0x40c719
int3
push 0
push 0
push 0x421
push dword [esi]
call dword [sym.imp.USER32.dll_SendMessageA]
xor edi, edi
mov eax, dword [ebx + 4]
mov dword [ebp - 0x10], edi
cmp eax, edi
je 0x40c742
mov edi, eax
lea esi, [ebp - 0x10]
call fcn.004054a1
jmp 0x40c74f
push edi
mov dword [ebp - 0xc], edi
call dword [sym.imp.USER32.dll_GetWindowDC]
mov dword [ebp - 0x10], eax
push dword [ebx + 0xa4]
lea edi, [ebp - 0x10]
call fcn.0040772d
and dword [ebp - 0x20], 0
mov dword [ebp - 4], eax
xor eax, eax
lea edi, [ebp - 0x1c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x20]
push eax
push 0x436684
lea esi, [ebp - 0x10]
call fcn.0040cc2c
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
cmp eax, 4
jge 0x40c7b0
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
lea eax, [ebp - 0x20]
push eax
push 0x436688
call fcn.0040cc2c
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x20]
xor esi, esi
mov dword [ebx + 0xb0], eax
jmp 0x40c7b8
xor esi, esi
mov dword [ebx + 0xb0], esi
push dword [ebp - 4]
lea edi, [ebp - 0x10]
call fcn.0040772d
push 0x90
lea eax, [ebp - 0x24c]
push esi
push eax
mov dword [ebp - 0x250], 0x94
call fcn.00416960
add esp, 0xc
lea eax, [ebp - 0x250]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x24c], 5
jb 0x40c896
push esi
lea eax, [ebp - 4]
push eax
push esi
push 0x100a
mov dword [ebp - 4], 1
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
test eax, eax
je 0x40c821
cmp dword [ebp - 4], esi
jne 0x40c821
mov al, 1
jmp 0x40c823
xor al, al
mov cl, byte [ebx + 0x85]
and al, 1
or al, 4
add al, al
and cl, 0xfd
or al, cl
mov byte [ebx + 0x85], al
shr al, 1
not al
and al, 1
mov edx, ebx
call fcn.0040c98f
cmp dword [ebp - 0x24c], 5
jne 0x40c860
cmp dword [ebp - 0x248], 1
jae 0x40c862
cmp dword [ebp - 0x24c], 5
jbe 0x40c896
push esi
lea eax, [ebp - 4]
push eax
push esi
push 0x1022
mov dword [ebp - 4], esi
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
test eax, eax
je 0x40c883
cmp dword [ebp - 4], esi
je 0x40c883
mov al, 1
jmp 0x40c885
xor al, al
mov cl, byte [ebx + 0x85]
xor cl, al
and cl, 1
xor byte [ebx + 0x85], cl
test byte [ebx + 0x58], 0x10
jne 0x40c8b4
call fcn.00404649
test al, al
je 0x40c8b4
call fcn.00404695
test al, al
je 0x40c8b4
mov byte [ebp - 5], 1
jmp 0x40c8d2
test byte [ebx + 0x86], 1
mov byte [ebp - 5], 0
je 0x40c8d2
cmp dword [ebx + 0x44], esi
je 0x40c8d2
cmp dword [ebx + 0x50], esi
jle 0x40c8d2
mov edi, ebx
call fcn.0040b1b0
mov al, byte [ebx + 0x86]
xor al, byte [ebp - 5]
lea esi, [ebp - 0x10]
and al, 1
xor byte [ebx + 0x86], al
call fcn.004054db
pop edi
pop esi
pop ebx
leave
ret