Function at 0x48c880
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cf06f
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x4fafc0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x10], 0
mov edi, dword [ebp + 8]
mov ecx, edi
call dword [sym.imp.mfc140u.dll_Ordinal_296]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 1
mov ebx, dword [eax + 0x30]
mov esi, dword [eax + 0x34]
movzx ecx, word [eax + 0x38]
mov eax, dword [eax + 0x3c]
cmp eax, 2
je 0x48c9a3
sub eax, 0
je 0x48c99c
sub eax, 1
je 0x48c905
sub eax, 1
je 0x48c9a3
push str.VER_PLATFORM_______
jmp 0x48ca10
cmp ebx, 4
jne 0x48c995
test esi, esi
jne 0x48c954
cmp ecx, 0x3b6
jne 0x48c924
push str.Windows_95__SP1_OSR1
jmp 0x48ca10
cmp ecx, 0x457
jne 0x48c936
push str.Windows_95_OSR2_2.1
jmp 0x48ca10
cmp ecx, 0x4bc
mov ecx, edi
jne 0x48c94a
push str.Windows_95_OSR2.5
jmp 0x48ca12
push str.Windows_95_Family
jmp 0x48ca12
cmp esi, 0xa
jne 0x48c989
cmp ecx, 0x7ce
jne 0x48c96b
push str.Windows_98
jmp 0x48ca10
cmp ecx, 0x8ae
mov ecx, edi
jne 0x48c97f
push str.Windows_98_SE
jmp 0x48ca12
push str.Windows_98_Family
jmp 0x48ca12
cmp esi, 0x5a
jne 0x48c995
push str.Windows_Me
jmp 0x48ca10
push str.PLATFORM_WIN32_WINDOWS
jmp 0x48ca10
push str.VER_PLATFORM_WIN32s
jmp 0x48ca10
cmp ebx, 4
ja 0x48c9af
push str.Windows_NT
jmp 0x48ca10
cmp ebx, 5
jne 0x48c9d7
test esi, esi
jne 0x48c9bf
push str.Windows_2000
jmp 0x48ca10
cmp esi, 1
jne 0x48c9cb
push str.Windows_XP
jmp 0x48ca10
cmp esi, 2
jne 0x48ca0b
push str.Windows_Server_2003
jmp 0x48ca10
cmp ebx, 6
jne 0x48ca0b
test esi, esi
jne 0x48c9e7
push str.Windows_Vista
jmp 0x48ca10
cmp esi, 1
jne 0x48c9f3
push str.Windows_7
jmp 0x48ca10
cmp esi, 2
jne 0x48c9ff
push str.Windows_8
jmp 0x48ca10
cmp esi, 3
jne 0x48ca0b
push str.Windows_8.1
jmp 0x48ca10
push str.VER_PLATFORM_WIN32_NT
mov ecx, edi
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator_2]
lea ecx, [ebp - 0x24]
mov dword [ebp - 4], 1
call dword [sym.imp.mfc140u.dll_Ordinal_296]
push 0xa
push 0x64
push 0x64
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x10], 5
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
push eax
push esi
mov esi, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__ltow_s]
call esi
add esp, 0x10
lea ecx, [ebp - 0x24]
push 0xffffffffffffffff
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::ReleaseBuffer]
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 3
call dword [sym.imp.mfc140u.dll_Ordinal_296]
push 0xa
push 0x64
push 0x64
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x10], 0x13
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
push eax
push ebx
call esi
add esp, 0x10
lea ecx, [ebp - 0x14]
push 0xffffffffffffffff
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::ReleaseBuffer]
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 5
call dword [sym.imp.mfc140u.dll_Ordinal_5921]
push eax
lea ecx, [ebp - 0x20]
call dword [sym.imp.mfc140u.dll_Ordinal_285]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], 0x2b
push dword [eax - 0xc]
push eax
push 1
lea eax, [ebp - 0x20]
push 0x4dccdc
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::Concatenate]
add esp, 0x14
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 6
call dword [sym.imp.mfc140u.dll_Ordinal_5921]
push eax
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_Ordinal_285]
mov eax, dword [ebp - 0x20]
push 1
push 0x4dc00c
mov dword [ebp - 0x10], 0x6b
push dword [eax - 0xc]
push eax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::Concatenate]
add esp, 0x14
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 7
call dword [sym.imp.mfc140u.dll_Ordinal_5921]
push eax
lea ecx, [ebp - 0x18]
call dword [sym.imp.mfc140u.dll_Ordinal_285]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x10], 0xeb
push dword [eax - 0xc]
mov ecx, dword [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push dword [ecx - 0xc]
push ecx
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::Concatenate]
add esp, 0x14
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 8
call dword [sym.imp.mfc140u.dll_Ordinal_5921]
push eax
lea ecx, [ebp - 0x28]
call dword [sym.imp.mfc140u.dll_Ordinal_285]
mov eax, dword [ebp - 0x18]
push 3
push 0x4dda64
mov dword [ebp - 0x10], 0x1eb
push dword [eax - 0xc]
push eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::Concatenate]
add esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator_3]
lea ecx, [ebp - 0x28]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x18]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x1c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x10], 0xb
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x14]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
push 0x4dbf08
lea ecx, [ebp - 0x24]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__21]
mov esi, eax
mov ebx, dword [ebp - 0x2c]
mov dword [ebp - 4], 9
mov ecx, esi
mov byte [ebp - 4], 0xa
call dword [sym.imp.mfc140u.dll_Ordinal_5921]
push eax
lea ecx, [ebp - 0x28]
call dword [sym.imp.mfc140u.dll_Ordinal_285]
mov esi, dword [esi]
mov dword [ebp - 0x10], 0x20b
add ebx, 0x40
jne 0x48cc04
xor eax, eax
jmp 0x48cc1f
mov eax, ebx
lea edx, [eax + 2]
nop dword [eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x48cc10
sub eax, edx
sar eax, 1
push dword [esi - 0xc]
push esi
push eax
lea eax, [ebp - 0x28]
push ebx
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::Concatenate]
add esp, 0x14
lea eax, [ebp - 0x28]
mov ecx, edi
push eax
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::operator_3]
lea ecx, [ebp - 0x28]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea ecx, [ebp - 0x24]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4