Function at 0x10016430
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c4
push ebx
push esi
push edi
mov dword [ebp - 0x98], 0
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
mov dword [ebp - 0x94], 0x94
lea ecx, [ebp - 0x94]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
push str.ntprint.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
je 0x10016799
push str.PSetupCreateMonitorInfo
mov edx, dword [ebp - 0x9c]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
je 0x1001678c
cmp dword [ebp - 0x90], 5
ja 0x100164c4
cmp dword [ebp - 0x90], 5
jne 0x100164d6
cmp dword [ebp - 0x8c], 0
jbe 0x100164d6
push 0
push 0xc
call dword [ebp - 0xa0]
mov dword [ebp - 0xa4], eax
jmp 0x100164ec
mov esi, esp
push 0
push 0
push 0xc
call dword [ebp - 0xa0]
mov dword [ebp - 0xa4], eax
mov esp, esi
cmp dword [ebp - 0xa4], 0
je 0x1001678c
push str.PSetupEnumMonitor
mov eax, dword [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
je 0x1001675e
mov dword [ebp - 0x2b4], 0
mov dword [ebp - 0x2b8], 0
jmp 0x10016543
mov ecx, dword [ebp - 0x2b8]
add ecx, 1
mov dword [ebp - 0x2b8], ecx
mov dword [ebp - 0xa8], 0x208
lea edx, [ebp - 0xa8]
push edx
lea eax, [ebp - 0x2b0]
push eax
mov ecx, dword [ebp - 0x2b8]
push ecx
mov edx, dword [ebp - 0xa4]
push edx
call dword [ebp - 0xa0]
test eax, eax
je 0x10016598
lea eax, [ebp - 0x2b0]
push eax
call fcn.100177fe
add esp, 4
lea ecx, [eax + eax + 2]
mov edx, dword [ebp - 0x2b4]
lea eax, [edx + ecx*2 + 4]
mov dword [ebp - 0x2b4], eax
jmp 0x10016534
cmp dword [ebp - 0x2b4], 0
jbe 0x1001675e
mov ecx, dword [ebp - 0x2b4]
add ecx, 0x104
mov dword [ebp - 0x2b4], ecx
mov edx, dword [ebp - 0x2b4]
push edx
push 0x40
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [ebp - 0x98], eax
cmp dword [ebp - 0x98], 0
je 0x1001675e
mov eax, dword [ebp - 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov dword [ebp - 0x2c0], eax
mov ecx, dword [ebp - 0x2b8]
mov edx, dword [ebp - 0x2c0]
lea eax, [edx + ecx*4]
mov dword [ebp - 0x2bc], eax
mov ecx, dword [ebp - 0x2b8]
shl ecx, 2
mov edx, dword [ebp - 0x2b4]
sub edx, ecx
mov dword [ebp - 0x2b4], edx
mov dword [ebp - 0x2b8], 0
jmp 0x10016642
mov eax, dword [ebp - 0x2c0]
add eax, 4
mov dword [ebp - 0x2c0], eax
mov ecx, dword [ebp - 0x2b8]
add ecx, 1
mov dword [ebp - 0x2b8], ecx
mov edx, dword [ebp - 0x2b4]
mov dword [ebp - 0xa8], edx
lea eax, [ebp - 0xa8]
push eax
mov ecx, dword [ebp - 0x2bc]
push ecx
mov edx, dword [ebp - 0x2b8]
push edx
mov eax, dword [ebp - 0xa4]
push eax
call dword [ebp - 0xa0]
test eax, eax
je 0x10016746
push 0
push 0
mov ecx, dword [ebp - 0x2bc]
push ecx
call fcn.100177fe
add esp, 4
add eax, 1
push eax
mov edx, dword [ebp - 0x2bc]
push edx
call fcn.100177fe
add esp, 4
mov ecx, dword [ebp - 0x2bc]
lea edx, [ecx + eax*2 + 2]
push edx
mov eax, dword [ebp - 0x2bc]
push eax
call fcn.100177fe
add esp, 4
push eax
mov ecx, dword [ebp - 0x2bc]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov dword [ebp - 0x2c4], eax
mov edx, dword [ebp - 0x2bc]
push edx
call fcn.100177fe
add esp, 4
mov ecx, dword [ebp - 0x2bc]
lea edx, [ecx + eax*2 + 2]
mov eax, dword [ebp - 0x2c0]
mov dword [eax], edx
mov ecx, dword [ebp - 0x2bc]
push ecx
call fcn.100177fe
add esp, 4
mov edx, dword [ebp - 0x2bc]
lea eax, [edx + eax*2 + 2]
mov ecx, dword [ebp - 0x2c4]
lea edx, [eax + ecx + 1]
mov dword [ebp - 0x2bc], edx
mov eax, dword [ebp - 0x2bc]
push eax
call fcn.100177fe
add esp, 4
mov ecx, dword [ebp - 0x2c4]
lea edx, [ecx + eax*2 + 3]
mov eax, dword [ebp - 0x2b4]
sub eax, edx
mov dword [ebp - 0x2b4], eax
jmp 0x10016624
mov ecx, dword [ebp - 0x98]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x2b8]
mov dword [edx], eax
push str.PSetupDestroyMonitorInfo
mov ecx, dword [ebp - 0x9c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0
je 0x1001678c
mov edx, dword [ebp - 0xa4]
push edx
call dword [ebp - 0xa0]
mov eax, dword [ebp - 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 0x98]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret