Function at 0x4d5730
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x591e18
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4a0
push ebx
push esi
push edi
push 0x1f0
xor ebx, ebx
lea eax, [ebp - 0x280]
push ebx
push eax
mov esi, ecx
mov dword [ebp - 0x284], 0x1f4
call fcn.00555020
add esp, 0xc
push ebx
lea ecx, [ebp - 0x284]
push ecx
push 0x1f4
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
cmp eax, ebx
je 0x4d58fd
push 0x58
lea edx, [ebp - 0x8c]
push ebx
push edx
mov dword [ebp - 0x90], ebx
call fcn.00555020
mov eax, dword [esi + 0xa4]
add esp, 0xc
cmp eax, ebx
je 0x4d57c3
lea ecx, [ebp - 0x90]
push ecx
push 0x5c
push eax
call dword [sym.imp.GDI32.dll_GetObjectW]
mov edx, dword [ebp - 0x90]
cmp edx, dword [ebp - 0x1a4]
jne 0x4d587f
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x1a0]
jne 0x4d587f
mov ecx, dword [ebp - 0x88]
cmp ecx, dword [ebp - 0x19c]
jne 0x4d587f
mov edx, dword [ebp - 0x84]
cmp edx, dword [ebp - 0x198]
jne 0x4d587f
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x194]
jne 0x4d587f
mov cl, byte [ebp - 0x7c]
cmp cl, byte [ebp - 0x190]
jne 0x4d587f
mov dl, byte [ebp - 0x7b]
cmp dl, byte [ebp - 0x18f]
jne 0x4d587f
mov al, byte [ebp - 0x7a]
cmp al, byte [ebp - 0x18e]
jne 0x4d587f
mov cl, byte [ebp - 0x79]
cmp cl, byte [ebp - 0x18d]
jne 0x4d587f
mov dl, byte [ebp - 0x78]
cmp dl, byte [ebp - 0x18c]
jne 0x4d587f
mov al, byte [ebp - 0x77]
cmp al, byte [ebp - 0x18b]
jne 0x4d587f
mov cl, byte [ebp - 0x76]
cmp cl, byte [ebp - 0x18a]
jne 0x4d587f
mov dl, byte [ebp - 0x75]
cmp dl, byte [ebp - 0x189]
jne 0x4d587f
lea eax, [ebp - 0x188]
push eax
lea ecx, [ebp - 0x74]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x4d58fd
lea edx, [ebp - 0x1a4]
push edx
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov edi, eax
cmp edi, ebx
je 0x4d58fd
cmp dword [esi + 0xa4], ebx
je 0x4d58b1
mov eax, dword [esi + 0xa4]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp eax, ebx
je 0x4d58b1
mov dword [esi + 0xa4], ebx
mov eax, dword [esi + 0xa4]
cmp eax, ebx
je 0x4d58c6
cmp eax, edi
je 0x4d58c6
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 1
mov eax, edi
push eax
mov dword [esi + 0xa4], edi
mov ecx, dword [esi + 4]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0x30
push ecx
call edi
mov edx, dword [esi + 4]
push 0x5a5608
push ebx
push 0x44d
push edx
call edi
mov eax, dword [esi + 4]
push ebx
push ebx
push 0x421
push eax
call edi
mov eax, dword [esi + 4]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], ebx
push eax
mov dword [ebp - 0x28], eax
call dword [sym.imp.USER32.dll_GetWindowDC]
mov edi, eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 4], 1
mov eax, dword [esi + 0xa4]
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push 0x424
lea ecx, [ebp - 0x24]
push ecx
push 0xffffffffffffffff
push 0x59d11c
push edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
call dword [sym.imp.USER32.dll_DrawTextW]
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x24]
cmp edx, 4
jge 0x4d598d
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
push 0x424
lea ecx, [ebp - 0x24]
push ecx
push 0xffffffffffffffff
push 0x59d118
push edi
call dword [sym.imp.USER32.dll_DrawTextW]
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x24]
mov dword [esi + 0xb0], edx
jmp 0x4d5993
mov dword [esi + 0xb0], ebx
mov eax, dword [ebp - 0x14]
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push 0x110
lea ecx, [ebp - 0x394]
push ebx
push ecx
mov dword [ebp - 0x398], 0x114
call fcn.00555020
add esp, 0xc
lea edx, [ebp - 0x398]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [ebp - 0x394]
cmp eax, 5
jb 0x4d5a74
push ebx
lea eax, [ebp - 0x14]
push eax
push ebx
push 0x100a
mov dword [ebp - 0x14], 1
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
cmp eax, ebx
je 0x4d59fe
cmp dword [ebp - 0x14], ebx
jne 0x4d59fe
mov al, 1
jmp 0x4d5a00
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.004d3b50
mov eax, dword [ebp - 0x394]
cmp eax, 5
jne 0x4d5a3e
cmp dword [ebp - 0x390], 1
jae 0x4d5a40
jmp 0x4d5a74
jbe 0x4d5a74
push ebx
lea eax, [ebp - 0x14]
push eax
push ebx
push 0x1022
mov dword [ebp - 0x14], ebx
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
cmp eax, ebx
je 0x4d5a61
cmp dword [ebp - 0x14], ebx
je 0x4d5a61
mov al, 1
jmp 0x4d5a63
xor al, al
mov cl, byte [esi + 0x85]
xor cl, al
and cl, 1
xor byte [esi + 0x85], cl
push 0x110
lea edx, [ebp - 0x4a8]
push ebx
push edx
mov dword [ebp - 0x4ac], 0x114
call fcn.00555020
add esp, 0xc
lea eax, [ebp - 0x4ac]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp eax, ebx
je 0x4d5ba4
cmp dword [ebp - 0x4a8], 6
jb 0x4d5ba4
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp - 0x14]
push edx
mov dword [ebp - 0x14], ebx
call fcn.00415b40
add esp, 8
cmp eax, ebx
jl 0x4d5ba4
cmp dword [ebp - 0x14], 6
jb 0x4d5ba4
test byte [esi + 0x58], 0x10
jne 0x4d5ba4
push str.uxtheme.dll
mov byte [ebp - 0xd], 1
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x14], eax
cmp eax, ebx
je 0x4d5b65
push str.IsThemeActive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x4d5b14
call eax
mov byte [ebp - 0xd], 1
test eax, eax
jne 0x4d5b17
mov byte [ebp - 0xd], bl
mov eax, dword [ebp - 0x14]
push str.IsAppThemed
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp byte [ebp - 0xd], bl
je 0x4d5b39
cmp eax, ebx
je 0x4d5b39
call eax
mov byte [ebp - 0xd], 1
test eax, eax
jne 0x4d5b3c
mov byte [ebp - 0xd], bl
mov ecx, dword [ebp - 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp byte [ebp - 0xd], bl
jne 0x4d5b65
test byte [esi + 0x86], 1
je 0x4d5b65
cmp dword [esi + 0x44], ebx
je 0x4d5b65
cmp dword [esi + 0x50], ebx
jle 0x4d5b65
mov ecx, esi
call fcn.00477fb0
mov dl, byte [esi + 0x86]
xor dl, byte [ebp - 0xd]
and dl, 1
xor byte [esi + 0x86], dl
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x30]
push edi
push eax
mov dword [ebp - 0x2c], ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov byte [ebp - 0xd], bl
jmp 0x4d5b4b