Function at 0x10004510
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100dae05
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x101279d8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor edi, edi
mov eax, vtable.CBrush.0
mov dword [ebp - 0x128], esi
mov dword [esi + 0x94], edi
mov dword [esi + 0x90], eax
mov dword [ebp - 4], edi
mov dword [esi + 0x9c], edi
mov dword [esi + 0x98], eax
mov dword [esi + 0xa4], edi
mov dword [esi + 0xa0], eax
mov dword [esi + 0xac], edi
mov dword [esi + 0xa8], eax
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb0], eax
mov dword [esi + 0xbc], edi
mov dword [esi + 0xb8], eax
mov dword [esi + 0xc4], edi
mov dword [esi + 0xc0], eax
mov dword [esi + 0xcc], edi
mov dword [esi + 0xc8], eax
mov eax, vtable.CPen.0
mov dword [esi + 0xd4], edi
mov dword [esi + 0xd0], eax
mov dword [esi + 0xdc], edi
mov dword [esi + 0xd8], eax
mov dword [esi + 0xe4], edi
mov dword [esi + 0xe0], eax
mov dword [esi + 0x10c], edi
mov dword [esi + 0x110], edi
mov eax, vtable.CFont.0
mov dword [esi + 0x118], edi
mov dword [esi + 0x114], eax
mov dword [esi + 0x120], edi
mov dword [esi + 0x11c], eax
mov dword [esi + 0x128], edi
mov dword [esi + 0x124], eax
mov dword [esi + 0x130], edi
mov dword [esi + 0x12c], eax
mov dword [esi + 0x138], edi
mov dword [esi + 0x134], eax
mov dword [esi + 0x140], edi
mov dword [esi + 0x13c], eax
mov dword [esi + 0x148], edi
mov dword [esi + 0x144], eax
mov dword [esi + 0x150], edi
mov dword [esi + 0x14c], eax
mov dword [esi + 0x158], edi
mov dword [esi + 0x154], eax
mov dword [esi + 0x160], edi
mov dword [esi + 0x15c], eax
lea eax, [ebp - 0x124]
push eax
mov byte [ebp - 4], 0x14
mov dword [esi + 0x164], edi
mov dword [esi + 0x168], edi
mov dword [esi + 0x16c], edi
mov dword [esi + 0x170], edi
mov dword [ebp - 0x124], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [esi + 0x180], eax
mov eax, dword [ebp - 0x120]
cmp eax, 6
sbb ecx, ecx
inc ecx
mov dword [esi + 0x174], ecx
lea ebx, [edi + 1]
cmp eax, 6
jne 0x10004812
cmp dword [ebp - 0x11c], ebx
jb 0x10004818
mov eax, ebx
mov ecx, esi
mov dword [esi + 0x178], eax
mov dword [esi + 0x17c], edi
mov dword [esi + 0x1e4], ebx
mov dword [esi + 0xc], edi
mov dword [esi + 8], edi
mov dword [esi + 0x10], edi
call fcn.10003a60
mov ecx, esi
mov dword [esi + 0x1ec], edi
mov dword [esi + 0x1f4], edi
mov dword [esi + 0x1f8], edi
mov dword [esi + 0x1fc], edi
mov dword [esi + 0x200], edi
mov dword [esi + 0x204], edi
mov dword [esi + 0x208], edi
mov dword [esi + 0x1f0], edi
mov dword [esi + 0x20c], edi
mov dword [esi + 0x210], edi
mov dword [esi + 0x214], edi
mov dword [esi + 0xe8], edi
mov dword [esi + 0xec], edi
mov dword [esi + 0xf0], edi
mov dword [esi + 0xf4], edi
mov dword [esi + 0x100], edi
mov dword [esi + 0x104], edi
mov dword [esi + 0x108], edi
mov dword [esi + 0xf8], edi
mov dword [esi + 0xfc], edi
mov dword [esi], edi
mov dword [esi + 4], edi
call fcn.10003ff0
mov ecx, esi
call fcn.10002650
mov eax, 4
mov dword [esi + 0x1b0], eax
mov dword [esi + 0x1bc], eax
mov dword [esi + 0x198], edi
mov dword [esi + 0x1e8], edi
mov dword [esi + 0x1b4], 3
mov dword [esi + 0x1b8], 0xe
mov dword [esi + 0x1c0], 0x32
mov dword [esi + 0x1c4], 0xffffffff
mov dword [esi + 0x184], edi
mov dword [esi + 0x188], edi
mov dword [esi + 0x18c], ebx
mov dword [esi + 0x218], edi
mov dword [esi + 0x220], edi
mov dword [esi + 0x224], edi
mov dword [esi + 0x21c], ebx
mov dword [esi + 0x19c], ebx
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100a6f5d
mov esp, ebp
pop ebp
ret
ja 0x100046d0
xor eax, eax
jmp 0x100046d2