Function at 0x585e10
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x663758
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.006100a0
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 0x585fdd
push 0x58
lea edx, [ebp - 0x8c]
push ebx
push edx
mov dword [ebp - 0x90], ebx
call fcn.006100a0
mov eax, dword [esi + 0xa4]
add esp, 0xc
cmp eax, ebx
je 0x585ea3
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 0x585f5f
mov eax, dword [ebp - 0x8c]
cmp eax, dword [ebp - 0x1a0]
jne 0x585f5f
mov ecx, dword [ebp - 0x88]
cmp ecx, dword [ebp - 0x19c]
jne 0x585f5f
mov edx, dword [ebp - 0x84]
cmp edx, dword [ebp - 0x198]
jne 0x585f5f
mov eax, dword [ebp - 0x80]
cmp eax, dword [ebp - 0x194]
jne 0x585f5f
mov cl, byte [ebp - 0x7c]
cmp cl, byte [ebp - 0x190]
jne 0x585f5f
mov dl, byte [ebp - 0x7b]
cmp dl, byte [ebp - 0x18f]
jne 0x585f5f
mov al, byte [ebp - 0x7a]
cmp al, byte [ebp - 0x18e]
jne 0x585f5f
mov cl, byte [ebp - 0x79]
cmp cl, byte [ebp - 0x18d]
jne 0x585f5f
mov dl, byte [ebp - 0x78]
cmp dl, byte [ebp - 0x18c]
jne 0x585f5f
mov al, byte [ebp - 0x77]
cmp al, byte [ebp - 0x18b]
jne 0x585f5f
mov cl, byte [ebp - 0x76]
cmp cl, byte [ebp - 0x18a]
jne 0x585f5f
mov dl, byte [ebp - 0x75]
cmp dl, byte [ebp - 0x189]
jne 0x585f5f
lea eax, [ebp - 0x188]
push eax
lea ecx, [ebp - 0x74]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x585fdd
lea edx, [ebp - 0x1a4]
push edx
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov edi, eax
cmp edi, ebx
je 0x585fdd
cmp dword [esi + 0xa4], ebx
je 0x585f91
mov eax, dword [esi + 0xa4]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp eax, ebx
je 0x585f91
mov dword [esi + 0xa4], ebx
mov eax, dword [esi + 0xa4]
cmp eax, ebx
je 0x585fa6
cmp eax, edi
je 0x585fa6
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 0x67d9ec
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 0x671160
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 0x58606d
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
push 0x424
lea ecx, [ebp - 0x24]
push ecx
push 0xffffffffffffffff
push 0x67115c
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 0x586073
mov dword [esi + 0xb0], ebx
mov eax, dword [ebp - 0x14]
push eax
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push pe_nt_image_headers32
lea ecx, [ebp - 0x394]
push ebx
push ecx
mov dword [ebp - 0x398], 0x114
call fcn.006100a0
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 0x586154
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 0x5860de
cmp dword [ebp - 0x14], ebx
jne 0x5860de
mov al, 1
jmp 0x5860e0
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.00584240
mov eax, dword [ebp - 0x394]
cmp eax, 5
jne 0x58611e
cmp dword [ebp - 0x390], 1
jae 0x586120
jmp 0x586154
jbe 0x586154
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 0x586141
cmp dword [ebp - 0x14], ebx
je 0x586141
mov al, 1
jmp 0x586143
xor al, al
mov cl, byte [esi + 0x85]
xor cl, al
and cl, 1
xor byte [esi + 0x85], cl
push pe_nt_image_headers32
lea edx, [ebp - 0x4a8]
push ebx
push edx
mov dword [ebp - 0x4ac], 0x114
call fcn.006100a0
add esp, 0xc
lea eax, [ebp - 0x4ac]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp eax, ebx
je 0x586284
cmp dword [ebp - 0x4a8], 6
jb 0x586284
lea ecx, [ebp - 0x34]
push ecx
lea edx, [ebp - 0x14]
push edx
mov dword [ebp - 0x14], ebx
call fcn.00444650
add esp, 8
cmp eax, ebx
jl 0x586284
cmp dword [ebp - 0x14], 6
jb 0x586284
test byte [esi + 0x58], 0x10
jne 0x586284
push 0x672884
mov byte [ebp - 0xd], 1
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x14], eax
cmp eax, ebx
je 0x586245
push str.IsThemeActive
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
je 0x5861f4
call eax
mov byte [ebp - 0xd], 1
test eax, eax
jne 0x5861f7
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 0x586219
cmp eax, ebx
je 0x586219
call eax
mov byte [ebp - 0xd], 1
test eax, eax
jne 0x58621c
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 0x586245
test byte [esi + 0x86], 1
je 0x586245
cmp dword [esi + 0x44], ebx
je 0x586245
cmp dword [esi + 0x50], ebx
jle 0x586245
mov ecx, esi
call fcn.00501dd0
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 0x58622b