Function at 0x45a973
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x384
mov eax, dword [0x516ad4]
push ebx
push esi
push edi
push 0x7c
mov esi, ecx
pop ecx
mov dword [ebp + 0x74], eax
xor eax, eax
lea edi, [ebp - 0x1d8]
rep stosd dword es:[edi], eax
xor ebx, ebx
push ebx
lea ecx, [ebp - 0x1dc]
mov eax, 0x1f4
push ecx
push eax
push 0x29
mov dword [ebp - 0x1dc], eax
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x45ab07
push 0x16
xor eax, eax
pop ecx
lea edi, [ebp + 0x1c]
mov dword [ebp + 0x18], ebx
rep stosd dword es:[edi], eax
lea edi, [esi + 0xa4]
cmp dword [edi], ebx
je 0x45a9e0
lea eax, [ebp + 0x18]
push eax
mov eax, edi
call fcn.00458ce9
mov eax, dword [ebp + 0x18]
cmp eax, dword [ebp - 0xfc]
jne 0x45aa90
mov eax, dword [ebp + 0x1c]
cmp eax, dword [ebp - 0xf8]
jne 0x45aa90
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0xf4]
jne 0x45aa90
mov eax, dword [ebp + 0x24]
cmp eax, dword [ebp - 0xf0]
jne 0x45aa90
mov eax, dword [ebp + 0x28]
cmp eax, dword [ebp - 0xec]
jne 0x45aa90
mov al, byte [ebp + 0x2c]
cmp al, byte [ebp - 0xe8]
jne 0x45aa90
mov al, byte [ebp + 0x2d]
cmp al, byte [ebp - 0xe7]
jne 0x45aa90
mov al, byte [ebp + 0x2e]
cmp al, byte [ebp - 0xe6]
jne 0x45aa90
mov al, byte [ebp + 0x2f]
cmp al, byte [ebp - 0xe5]
jne 0x45aa90
mov al, byte [ebp + 0x30]
cmp al, byte [ebp - 0xe4]
jne 0x45aa90
mov al, byte [ebp + 0x31]
cmp al, byte [ebp - 0xe3]
jne 0x45aa90
mov al, byte [ebp + 0x32]
cmp al, byte [ebp - 0xe2]
jne 0x45aa90
mov al, byte [ebp + 0x33]
cmp al, byte [ebp - 0xe1]
jne 0x45aa90
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp + 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x45ab07
lea eax, [ebp - 0xfc]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
cmp eax, ebx
mov dword [ebp - 0x2f4], eax
je 0x45ab07
cmp dword [edi], ebx
je 0x45aab9
push dword [edi]
call dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x45aab9
mov dword [edi], ebx
mov eax, dword [edi]
cmp eax, ebx
je 0x45aace
cmp eax, dword [ebp - 0x2f4]
je 0x45aace
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0x2f4]
push 1
push eax
lea ebx, [esi + 4]
push ebx
mov dword [edi], eax
call fcn.0041103a
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0x4fcc7c
push 0
push 0x44d
push dword [ebx]
call edi
push 0
push 0
push 0x421
push dword [ebx]
call edi
xor ebx, ebx
mov eax, dword [esi + 4]
push eax
mov dword [ebp - 0x2f8], eax
call dword [sym.imp.USER32.dll_GetWindowDC]
push dword [esi + 0xa4]
mov dword [ebp - 0x2fc], eax
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov edi, dword [sym.imp.USER32.dll_DrawTextW]
mov dword [ebp - 0x30c], ebx
mov dword [ebp - 0x308], ebx
mov dword [ebp - 0x304], ebx
mov dword [ebp - 0x300], ebx
mov dword [ebp - 0x2f4], eax
mov ebx, 0x424
push ebx
lea eax, [ebp - 0x30c]
push eax
push 0xffffffffffffffff
push 0x4f9894
push dword [ebp - 0x2fc]
call edi
mov eax, dword [ebp - 0x304]
sub eax, dword [ebp - 0x30c]
cmp eax, 4
jge 0x45abb5
lea eax, [ebp - 0x30c]
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
push ebx
lea eax, [ebp - 0x30c]
push eax
push 0xffffffffffffffff
push 0x4fcc78
push dword [ebp - 0x2fc]
call edi
mov eax, dword [ebp - 0x304]
sub eax, dword [ebp - 0x30c]
xor ebx, ebx
mov dword [esi + 0xb0], eax
jmp 0x45abbd
xor ebx, ebx
mov dword [esi + 0xb0], ebx
push dword [ebp - 0x2f4]
push dword [ebp - 0x2fc]
call dword [sym.imp.GDI32.dll_SelectObject]
push 0x44
pop ecx
xor eax, eax
mov dword [ebp - 0x2f0], 0x114
lea edi, [ebp - 0x2ec]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2f0]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x2ec], 5
jb 0x45aca6
push ebx
lea eax, [ebp - 0x2f4]
push eax
push ebx
push 0x100a
mov dword [ebp - 0x2f4], 1
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x45ac2e
cmp dword [ebp - 0x2f4], ebx
jne 0x45ac2e
mov al, 1
jmp 0x45ac30
xor al, al
and al, 1
or al, 4
lea ecx, [esi + 0x85]
mov dl, byte [ecx]
shl al, 1
and dl, 0xfd
or al, dl
mov byte [ecx], al
shr al, 1
not al
and al, 1
call fcn.00459615
cmp dword [ebp - 0x2ec], 5
jne 0x45ac69
cmp dword [ebp - 0x2e8], 1
jae 0x45ac6b
cmp dword [ebp - 0x2ec], 5
jbe 0x45aca6
push ebx
lea eax, [ebp - 0x2f4]
push eax
push ebx
push 0x1022
mov dword [ebp - 0x2f4], ebx
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x45ac95
cmp dword [ebp - 0x2f4], ebx
je 0x45ac95
mov cl, 1
jmp 0x45ac97
xor cl, cl
lea eax, [esi + 0x85]
mov dl, byte [eax]
xor dl, cl
and dl, 1
xor byte [eax], dl
lea esi, [ebp - 0x2fc]
call fcn.004111d4
mov ecx, dword [ebp + 0x74]
pop edi
pop esi
pop ebx
call fcn.004eae3c
add ebp, 0x78
leave
ret