Function at 0x5107e5
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x384
mov eax, dword [0x7b088c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x1f0
xor ebx, ebx
lea eax, [ebp - 0x260]
push ebx
push eax
mov edi, ecx
call fcn.00689b00
add esp, 0xc
lea eax, [ebp - 0x264]
mov ecx, 0x1f4
mov dword [ebp - 0x264], ecx
push ebx
push eax
push ecx
push 0x29
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x51093b
push 0x5c
lea eax, [ebp - 0x70]
push ebx
push eax
call fcn.00689b00
lea esi, [edi + 0x14]
add esp, 0xc
cmp dword [esi], ebx
je 0x51085c
lea eax, [ebp - 0x70]
push eax
push 0x5c
push dword [esi]
call dword [sym.imp.GDI32.dll_GetObjectW]
mov eax, dword [ebp - 0x70]
cmp eax, dword [ebp - 0x184]
jne 0x51090c
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x180]
jne 0x51090c
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x17c]
jne 0x51090c
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x178]
jne 0x51090c
mov eax, dword [ebp - 0x60]
cmp eax, dword [ebp - 0x174]
jne 0x51090c
mov al, byte [ebp - 0x5c]
cmp al, byte [ebp - 0x170]
jne 0x51090c
mov al, byte [ebp - 0x5b]
cmp al, byte [ebp - 0x16f]
jne 0x51090c
mov al, byte [ebp - 0x5a]
cmp al, byte [ebp - 0x16e]
jne 0x51090c
mov al, byte [ebp - 0x59]
cmp al, byte [ebp - 0x16d]
jne 0x51090c
mov al, byte [ebp - 0x58]
cmp al, byte [ebp - 0x16c]
jne 0x51090c
mov al, byte [ebp - 0x57]
cmp al, byte [ebp - 0x16b]
jne 0x51090c
mov al, byte [ebp - 0x56]
cmp al, byte [ebp - 0x16a]
jne 0x51090c
mov al, byte [ebp - 0x55]
cmp al, byte [ebp - 0x169]
jne 0x51090c
lea eax, [ebp - 0x168]
push eax
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
je 0x51093b
lea eax, [ebp - 0x184]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov ebx, eax
test ebx, ebx
je 0x51093b
cmp dword [esi], 0
je 0x510933
push dword [esi]
call dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x510933
and dword [esi], 0
push ebx
mov ecx, esi
call fcn.00510298
mov ecx, 0x3d0
lea eax, [edi - 4]
test edi, edi
cmove eax, ecx
mov eax, dword [eax]
push eax
mov dword [ebp - 0x380], eax
call dword [sym.imp.USER32.dll_GetWindowDC]
push dword [edi + 0x14]
mov esi, eax
push esi
mov dword [ebp - 0x384], esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ebx, dword [sym.imp.USER32.dll_DrawTextW]
xorps xmm0, xmm0
push 0x424
mov dword [ebp - 0x37c], eax
lea eax, [ebp - 0x14]
push eax
push 0xffffffffffffffff
push 0x70e924
push esi
movups xmmword [ebp - 0x14], xmm0
call ebx
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
cmp eax, 4
jge 0x5109c2
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.USER32.dll_SetRectEmpty]
push 0x424
lea eax, [ebp - 0x14]
push eax
push 0xffffffffffffffff
push 0x70e928
push esi
call ebx
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
mov dword [edi + 0x18], eax
jmp 0x5109c6
and dword [edi + 0x18], 0
push dword [ebp - 0x37c]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push 0x110
xor esi, esi
mov dword [ebp - 0x378], 0x114
lea eax, [ebp - 0x374]
push esi
push eax
call fcn.00689b00
add esp, 0xc
lea eax, [ebp - 0x378]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x374], 5
jne 0x510a1c
cmp dword [ebp - 0x370], ebx
jae 0x510a1e
cmp dword [ebp - 0x374], 5
jbe 0x510a49
push esi
lea eax, [ebp - 0x37c]
mov dword [ebp - 0x37c], esi
push eax
push esi
push 0x1022
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
test eax, eax
je 0x510a44
cmp dword [ebp - 0x37c], esi
jne 0x510a46
mov ebx, esi
mov byte [edi + 0x1c], bl
lea ecx, [ebp - 0x384]
call fcn.005100c1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00682c16
mov esp, ebp
pop ebp
ret