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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x43e7e7
push eax
mov dword fs:[0], esp
sub esp, 0xf8
push esi
mov esi, dword [esp + 0x10c]
test esi, esi
push edi
jne 0x430f81
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
add esp, 0x104
ret
lea eax, [esp + 0x6c]
mov dword [esp + 0x6c], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [esp + 0x70], 6
sbb ecx, ecx
inc ecx
mov dword [esp + 0x14], ecx
je 0x431163
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [esp + 0xc]
mov dword [esp + 0x108], 0
call sub.MFC42.DLL_CString::CString_2
push esi
lea ecx, [esp + 0xc]
mov byte [esp + 0x10c], 1
call sub.MFC42.DLL_CString::CString_1
push 0x454284
lea ecx, [esp + 0xc]
mov byte [esp + 0x10c], 2
call sub.MFC42.DLL_CString::TrimLeft
mov edx, dword [esp + 8]
or edi, 0xffffffff
mov al, byte [edx]
cmp al, 0x22
jne 0x4310cf
push 1
push 0x22
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::Find_1
mov esi, eax
cmp esi, edi
jne 0x43105a
mov byte [esp + 0x108], 1
lea ecx, [esp + 8]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov byte [esp + 0x108], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x108], edi
call sub.MFC42.DLL_CString::CString
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
add esp, 0x104
ret
lea eax, [esi - 1]
lea ecx, [esp + 0x14]
push eax
push 1
push ecx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Mid
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0x10c], 3
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x14]
mov byte [esp + 0x108], 2
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 8]
lea ecx, [esp + 8]
mov eax, dword [edx - 8]
sub eax, esi
dec eax
push eax
lea eax, [esp + 0x18]
push eax
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x10c], 4
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x14]
mov byte [esp + 0x108], 2
call sub.MFC42.DLL_CString::CString
jmp 0x4310eb
lea ecx, [esp + 8]
push ecx
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator_2
push 0x457968
lea ecx, [esp + 0x14]
call fcn.004326b6
mov edx, dword [esp + 0x114]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push edx
push 0
push eax
push ecx
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
cmp eax, 0x20
mov byte [esp + 0x108], 1
lea ecx, [esp + 8]
jle 0x43101b
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov byte [esp + 0x108], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x108], edi
call sub.MFC42.DLL_CString::CString
pop edi
mov eax, 0x21
pop esi
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
add esp, 0x104
ret
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x28]
mov dx, word [esp + 0x114]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x18]
lea ecx, [esp + 0x28]
push eax
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push esi
push 0
mov dword [esp + 0x50], 0x44
mov dword [esp + 0x7c], 1
mov word [esp + 0x80], dx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x4311e3
mov edx, dword [esp + 0x18]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call esi
mov eax, dword [esp + 0x1c]
push eax
call esi
pop edi
mov eax, 0x21
pop esi
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
add esp, 0x104
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 2
je 0x431249
dec eax
je 0x43122d
sub eax, 0xbe
je 0x431211
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
add esp, 0x104
ret
pop edi
mov eax, 0xb
pop esi
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
add esp, 0x104
ret
pop edi
mov eax, 3
pop esi
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
add esp, 0x104
ret
mov ecx, dword [esp + 0x100]
pop edi
mov eax, 2
pop esi
mov dword fs:[0], ecx
add esp, 0x104
ret