Function at 0x401f40
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x402d8c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa4
push esi
lea ecx, [esp + 0x10]
call fcn.00402a82
lea ecx, [esp + 0xc]
mov dword [esp + 0xb0], 0
call fcn.00402a82
lea ecx, [esp + 8]
mov byte [esp + 0xb0], 1
call fcn.00402a82
lea ecx, [esp + 4]
mov byte [esp + 0xb0], 2
call fcn.00402a82
lea eax, [esp + 0x14]
mov byte [esp + 0xb0], 3
push eax
mov dword [esp + 0x18], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov esi, dword [esp + 0xb8]
lea ecx, [esp + 0x10]
push esi
call sub.MFC42.DLL_CString::operator
push esi
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator
push esi
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::operator
push esi
lea ecx, [esp + 8]
call sub.MFC42.DLL_CString::operator
push 0x4054a4
lea ecx, [esp + 0x14]
call fcn.00402a76
push 0x4054a4
lea ecx, [esp + 0x10]
call fcn.00402a76
push 0x4054a4
lea ecx, [esp + 0xc]
call fcn.00402a76
push 0x4054a4
lea ecx, [esp + 8]
call fcn.00402a76
push str.vsbus.inf
lea ecx, [esp + 0x14]
call fcn.00402a76
push str.vsport.inf
lea ecx, [esp + 0x10]
call fcn.00402a76
push 0x405480
lea ecx, [esp + 0xc]
call fcn.00402a76
push 0x405474
lea ecx, [esp + 8]
call fcn.00402a76
mov eax, dword [esp + 0x18]
pop esi
cmp eax, 5
jne 0x402115
mov ecx, dword [esp + 0xc]
push ecx
push str.RES_DATA
push 0x81
call fcn.00401eb0
mov edx, dword [esp + 0x14]
push edx
push str.RES_DATA
push 0x82
call fcn.00401eb0
mov eax, dword [esp + 0x30]
add esp, 0x18
sub eax, 0
je 0x40209d
dec eax
je 0x4020ed
dec eax
je 0x4020c5
mov eax, dword [esp + 4]
push eax
push str.RES_DATA
push 0x84
call fcn.00401eb0
mov ecx, dword [esp + 0xc]
push ecx
push str.RES_DATA
push 0x87
jmp 0x4021b8
mov edx, dword [esp + 4]
push edx
push str.RES_DATA
push 0x83
call fcn.00401eb0
mov eax, dword [esp + 0xc]
push eax
push str.RES_DATA
push 0x86
jmp 0x4021b8
mov ecx, dword [esp + 4]
push ecx
push str.RES_DATA
push 0x85
call fcn.00401eb0
mov edx, dword [esp + 0xc]
push edx
push str.RES_DATA
push 0x88
jmp 0x4021b8
cmp eax, 6
jne 0x4021c0
mov edx, dword [esp + 0xc]
push edx
push str.RES_DATA
push 0x81
call fcn.00401eb0
mov eax, dword [esp + 0x14]
push eax
push str.RES_DATA
push 0x82
call fcn.00401eb0
mov eax, dword [esp + 0x30]
add esp, 0x18
sub eax, 0
je 0x402195
dec eax
je 0x402170
mov ecx, dword [esp + 4]
push ecx
push str.RES_DATA
push 0x89
call fcn.00401eb0
mov edx, dword [esp + 0xc]
push edx
jmp 0x4021ae
mov eax, dword [esp + 4]
push eax
push str.RES_DATA
push 0x8b
call fcn.00401eb0
mov ecx, dword [esp + 0xc]
push ecx
push str.RES_DATA
push 0x8c
jmp 0x4021b8
mov edx, dword [esp + 4]
push edx
push str.RES_DATA
push 0x89
call fcn.00401eb0
mov eax, dword [esp + 0xc]
push eax
push str.RES_DATA
push 0x8a
call fcn.00401eb0
add esp, 0x18
lea ecx, [esp]
mov byte [esp + 0xac], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 4]
mov byte [esp + 0xac], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 8]
mov byte [esp + 0xac], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc]
mov dword [esp + 0xac], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0xa4]
mov dword fs:[0], ecx
add esp, 0xb0
ret 4