Function at 0x40f720
Capabilities:
Check os version
Create process on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1970
call fcn.00490090
mov eax, dword [0x4f54d8]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
push edi
mov edi, edx
cmp dword [esi + 0x10], 0
jne 0x40f75a
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00482fe3
mov esp, ebp
pop ebp
ret
xor eax, eax
push 0x7fe
push eax
mov word [ebp - 0x80c], ax
lea eax, [ebp - 0x80a]
push eax
call fcn.0048bcb0
add esp, 0xc
xor eax, eax
mov word [ebp - 0x180c], ax
push 0x7fe
push eax
lea eax, [ebp - 0x180a]
push eax
call fcn.0048bcb0
add esp, 0xc
xor eax, eax
mov word [ebp - 0x100c], ax
push 0x7fe
push eax
lea eax, [ebp - 0x100a]
push eax
call fcn.0048bcb0
add esp, 0xc
cmp dword [esi + 0x14], 8
jb 0x40f7be
mov eax, dword [esi]
jmp 0x40f7c0
mov eax, esi
push eax
lea eax, [ebp - 0x80c]
push 0x400
push eax
call fcn.004899d5
add esp, 0xc
cmp dword [edi + 0x14], 8
jb 0x40f7df
mov eax, dword [edi]
jmp 0x40f7e1
mov eax, edi
push eax
lea eax, [ebp - 0x180c]
push 0x400
push eax
call fcn.004899d5
add esp, 0xc
cmp dword [ebx + 0x14], 8
jb 0x40f7fe
mov ebx, dword [ebx]
push ebx
lea eax, [ebp - 0x100c]
push 0x400
push eax
call fcn.004899d5
mov ebx, dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [ebp - 0x192c]
add esp, 0xc
mov dword [ebp - 0x1930], 0xffffffff
mov dword [ebp - 0x196c], 0x3c
mov dword [ebp - 0x1968], 0x440
mov dword [ebp - 0x1964], 0
push eax
mov dword [ebp - 0x1960], 0x4d80a4
mov dword [ebp - 0x192c], 0x11c
call ebx
test eax, eax
jne 0x40f875
lea eax, [ebp - 0x192c]
mov dword [ebp - 0x192c], 0x114
push eax
call ebx
push dword [ebp - 0x1928]
push str.windows_os_dwMajorVersion___d
push 0x616
push str.isWin7OS
call fcn.0042a930
add esp, 0x10
mov dword [ebp - 0x1950], 0
cmp dword [ebp - 0x1928], 6
mov eax, str.runas
mov dword [ebp - 0x194c], 0
cmovb eax, dword [ebp - 0x1960]
mov dword [ebp - 0x1960], eax
lea eax, [ebp - 0x80c]
mov dword [ebp - 0x195c], eax
lea eax, [ebp - 0x180c]
mov dword [ebp - 0x1958], eax
lea eax, [ebp - 0x100c]
mov dword [ebp - 0x1954], eax
lea eax, [ebp - 0x196c]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
cmp eax, 1
jne 0x40f964
push 0x7d0
push dword [ebp - 0x1934]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x40f92e
cmp eax, 0x102
je 0x40f922
cmp eax, 0xffffffff
jne 0x40f945
push str.execute_failed___
push 0x6b1
jmp 0x40f938
push str.execute_timeout___
push 0x6ac
jmp 0x40f938
push str.execute_signaled.
push 0x6a7
push str.executeExe
call fcn.0042a930
add esp, 0xc
lea eax, [ebp - 0x1930]
push eax
push dword [ebp - 0x1934]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [ebp - 0x1934]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x192c]
mov dword [ebp - 0x192c], 0x11c
push eax
call ebx
test eax, eax
jne 0x40f98e
lea eax, [ebp - 0x192c]
mov dword [ebp - 0x192c], 0x114
push eax
call ebx
push dword [ebp - 0x1928]
push str.windows_os_dwMajorVersion___d
push 0x616
push str.isWin7OS
call fcn.0042a930
add esp, 0x10
cmp dword [ebp - 0x1928], 6
setae al
cmp dword [edi + 0x14], 8
jb 0x40f9bd
mov edi, dword [edi]
cmp dword [esi + 0x14], 8
jb 0x40f9c5
mov esi, dword [esi]
movzx eax, al
push eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp - 0x1930]
push edi
push esi
push str.execute_filename___s__param___s__exitcode___d_lasterror___d_win7____d
push 0x6ba
push str.executeExe
call fcn.0042a930
mov ecx, dword [ebp - 8]
add esp, 0x20
xor eax, eax
cmp dword [ebp - 0x1930], eax
pop edi
sete al
xor ecx, ebp
pop esi
pop ebx
call fcn.00482fe3
mov esp, ebp
pop ebp
ret