Function at 0x44e310
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x4bc11b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x49c
push ebx
push ebp
push esi
push edi
push 0x110
xor ebx, ebx
lea eax, [esp + 0x28c]
push ebx
push eax
mov esi, ecx
mov edi, 0x1f8
mov dword [esp + 0x290], 0x114
call fcn.0049e6e0
add esp, 0xc
lea ecx, [esp + 0x284]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp eax, ebx
je 0x44e375
cmp dword [esp + 0x288], 6
jae 0x44e37a
mov edi, 0x1f4
push 0x1f4
lea edx, [esp + 0x94]
push ebx
push edx
mov dword [esp + 0x98], edi
call fcn.0049e6e0
add esp, 0xc
push ebx
lea eax, [esp + 0x90]
push eax
push 0x1f8
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
cmp eax, ebx
je 0x44e52e
push 0x58
lea ecx, [esp + 0x38]
push ebx
push ecx
mov dword [esp + 0x3c], ebx
call fcn.0049e6e0
mov eax, dword [esi + 0xa4]
add esp, 0xc
cmp eax, ebx
je 0x44e3e1
lea edx, [esp + 0x30]
push edx
push 0x5c
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x16c]
jne 0x44e4b1
mov ecx, dword [esp + 0x34]
cmp ecx, dword [esp + 0x170]
jne 0x44e4b1
mov edx, dword [esp + 0x38]
cmp edx, dword [esp + 0x174]
jne 0x44e4b1
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x178]
jne 0x44e4b1
mov ecx, dword [esp + 0x40]
cmp ecx, dword [esp + 0x17c]
jne 0x44e4b1
mov dl, byte [esp + 0x44]
cmp dl, byte [esp + 0x180]
jne 0x44e4b1
mov al, byte [esp + 0x45]
cmp al, byte [esp + 0x181]
jne 0x44e4b1
mov cl, byte [esp + 0x46]
cmp cl, byte [esp + 0x182]
jne 0x44e4b1
mov dl, byte [esp + 0x47]
cmp dl, byte [esp + 0x183]
jne 0x44e4b1
mov al, byte [esp + 0x48]
cmp al, byte [esp + 0x184]
jne 0x44e4b1
mov cl, byte [esp + 0x49]
cmp cl, byte [esp + 0x185]
jne 0x44e4b1
mov dl, byte [esp + 0x4a]
cmp dl, byte [esp + 0x186]
jne 0x44e4b1
mov al, byte [esp + 0x4b]
cmp al, byte [esp + 0x187]
jne 0x44e4b1
lea ecx, [esp + 0x188]
push ecx
lea edx, [esp + 0x50]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x44e52e
lea eax, [esp + 0x16c]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov edi, eax
cmp edi, ebx
je 0x44e52e
mov ebp, dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [esi + 0xa4], ebx
je 0x44e4e6
mov ecx, dword [esi + 0xa4]
push ecx
call ebp
cmp eax, ebx
je 0x44e4e6
mov dword [esi + 0xa4], ebx
mov eax, dword [esi + 0xa4]
cmp eax, ebx
je 0x44e4f7
cmp eax, edi
je 0x44e4f7
push eax
call ebp
push 1
mov eax, edi
push eax
mov dword [esi + 0xa4], edi
mov edx, dword [esi + 4]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0x30
push edx
call edi
mov eax, dword [esi + 4]
push 0x4be4d4
push ebx
push 0x44d
push eax
call edi
mov ecx, dword [esi + 4]
push ebx
push ebx
push 0x421
push ecx
call edi
mov eax, dword [esi + 4]
push eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x30], eax
call dword [sym.imp.USER32.dll_GetWindowDC]
mov edi, eax
mov dword [esp + 0x28], edi
mov eax, dword [esi + 0xa4]
mov ebp, dword [sym.imp.GDI32.dll_SelectObject]
push eax
push edi
mov dword [esp + 0x4bc], ebx
call ebp
push 0x424
lea edx, [esp + 0x18]
push edx
push 0xffffffffffffffff
mov ebx, eax
xor eax, eax
push 0x4be4d0
push edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
call dword [sym.imp.USER32.dll_DrawTextW]
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x14]
cmp eax, 4
jge 0x44e5c9
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.USER32.dll_SetRectEmpty]
push 0x424
lea edx, [esp + 0x18]
push edx
push 0xffffffffffffffff
push 0x4be4cc
push edi
call dword [sym.imp.USER32.dll_DrawTextW]
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x14]
mov dword [esi + 0xb0], eax
jmp 0x44e5d3
mov dword [esi + 0xb0], 0
push ebx
push edi
call ebp
push 0x110
lea ecx, [esp + 0x3a0]
push 0
mov ebp, 0x114
push ecx
mov dword [esp + 0x3a4], ebp
call fcn.0049e6e0
mov ebx, dword [sym.imp.KERNEL32.dll_GetVersionExW]
add esp, 0xc
lea edx, [esp + 0x398]
push edx
call ebx
mov eax, dword [esp + 0x39c]
cmp eax, 5
jb 0x44e6c7
push 0
lea eax, [esp + 0x14]
push eax
push 0
push 0x100a
mov dword [esp + 0x20], 1
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x44e645
cmp dword [esp + 0x10], 0
jne 0x44e645
mov al, 1
jmp 0x44e647
xor al, al
mov cl, byte [esi + 0x85]
and al, 1
or al, 4
add al, al
and cl, 0xfd
or al, cl
mov byte [esi + 0x85], al
shr al, 1
not al
and al, 1
movzx edx, al
push edx
mov ecx, esi
call fcn.0044d810
mov eax, dword [esp + 0x39c]
cmp eax, 5
jne 0x44e687
cmp dword [esp + 0x3a0], 1
jae 0x44e689
jmp 0x44e6c7
jbe 0x44e6c7
push 0
lea eax, [esp + 0x14]
push eax
push 0
push 0x1022
mov dword [esp + 0x20], 0
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x44e6b4
cmp dword [esp + 0x10], 0
je 0x44e6b4
mov al, 1
jmp 0x44e6b6
xor al, al
mov cl, byte [esi + 0x85]
xor cl, al
and cl, 1
xor byte [esi + 0x85], cl
test byte [esi + 0x58], 0x10
jne 0x44e710
push 0x110
lea edx, [esp + 0x28c]
push 0
push edx
mov dword [esp + 0x290], ebp
call fcn.0049e6e0
add esp, 0xc
lea eax, [esp + 0x284]
push eax
call ebx
test eax, eax
je 0x44e710
cmp dword [esp + 0x288], 6
jb 0x44e710
call fcn.0044c610
test al, al
je 0x44e710
mov bl, 1
jmp 0x44e72e
xor bl, bl
test byte [esi + 0x86], 1
je 0x44e72e
cmp dword [esi + 0x44], 0
je 0x44e72e
cmp dword [esi + 0x50], 0
jle 0x44e72e
mov ecx, esi
call fcn.0044d580
mov cl, byte [esi + 0x86]
mov edx, dword [esp + 0x24]
xor cl, bl
push edi
and cl, 1
xor byte [esi + 0x86], cl
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [esp + 0x4ac]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x4a8
ret