Function at 0x558c90
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x5c51d7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa0
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov dword [esp + 0x38], ebp
mov eax, dword [0x641030]
lea edi, [esp + 0x71]
lea edx, [esp + 0x14]
push 2
mov ecx, dword [eax + 0x298]
xor eax, eax
mov dword [esp + 0x30], ecx
mov ecx, 0xf
mov byte [esp + 0x74], 0
push edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0xd0]
mov dword [esp + 0xc0], 2
stosb byte es:[edi], al
call sub.MFC42.DLL_CString::Left
mov ebx, dword [esp + 0x14]
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
mov byte [esp + 0x70], 0
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0xb8], 3
test ecx, ecx
jle 0x558dba
mov al, byte [edx + ebx]
cmp al, 0x80
mov byte [esp + 0x13], al
jae 0x558d36
mov byte [esp + ebp + 0x70], al
inc ebp
inc edx
mov byte [esp + ebp + 0x70], 0
jmp 0x558da6
mov eax, dword [esp + 0x2c]
xor esi, esi
mov ecx, dword [eax + 8]
test ecx, ecx
mov dword [esp + 0x1c], ecx
jle 0x558dba
mov edi, dword [eax + 4]
mov eax, dword [edi]
mov bl, byte [esp + 0x13]
cmp byte [eax], bl
jne 0x558d65
mov ebx, dword [esp + 0x14]
mov cl, byte [eax + 1]
cmp cl, byte [edx + ebx + 1]
je 0x558d6f
mov ecx, dword [esp + 0x1c]
inc esi
add edi, 4
cmp esi, ecx
jge 0x558dba
jmp 0x558d4a
mov edi, dword [eax + 8]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + ebp + 0x70]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x70]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, 2
mov ebp, ecx
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jl 0x558d1e
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString_3
push 0x619e98
lea ecx, [esp + 0x1c]
mov byte [esp + 0xbc], 4
call fcn.0059b7ac
mov edx, dword [esp + 0xc8]
lea ecx, [esp + 0xc8]
mov eax, dword [edx - 8]
add eax, 0xfffffffe
push eax
lea eax, [esp + 0x20]
push eax
call sub.MFC42.DLL_CString::Right
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xbc], 5
call sub.MFC42.DLL_CString::operator_1
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb8], 4
call sub.MFC42.DLL_CString::CString
mov ebx, dword [esp + 0x14]
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
mov byte [esp + 0x70], 0
xor ebp, ebp
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
test ecx, ecx
jle 0x558edd
mov al, byte [edx + ebx]
cmp al, 0x80
mov byte [esp + 0x13], al
jae 0x558e59
mov byte [esp + ebp + 0x70], al
inc ebp
inc edx
mov byte [esp + ebp + 0x70], 0
jmp 0x558ec9
mov eax, dword [esp + 0x2c]
xor esi, esi
mov ecx, dword [eax + 8]
test ecx, ecx
mov dword [esp + 0x1c], ecx
jle 0x558edd
mov edi, dword [eax + 4]
mov eax, dword [edi]
mov bl, byte [esp + 0x13]
cmp byte [eax], bl
jne 0x558e88
mov ebx, dword [esp + 0x14]
mov cl, byte [eax + 1]
cmp cl, byte [edx + ebx + 1]
je 0x558e92
mov ecx, dword [esp + 0x1c]
inc esi
add edi, 4
cmp esi, ecx
jge 0x558edd
jmp 0x558e6d
mov edi, dword [eax + 8]
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + ebp + 0x70]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x70]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
add edx, 2
mov ebp, ecx
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jl 0x558e41
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x1c]
call fcn.0059b7ac
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::MakeUpper
mov ecx, dword [0x60d638]
mov dl, byte [0x63b90c]
xor eax, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [0x60d628]
mov word [esp + 0x3d], ax
mov byte [esp + 0x3c], dl
mov edx, dword [0x60d634]
mov byte [esp + 0x3f], al
mov eax, dword [0x60d630]
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x60d61c]
mov dword [esp + 0x44], edx
mov edx, dword [0x60d62c]
mov dword [esp + 0x48], eax
mov eax, dword [0x60d624]
mov dword [esp + 0x58], ecx
mov ecx, dword [0x60d610]
mov dword [esp + 0x50], edx
mov edx, dword [0x60d620]
mov dword [esp + 0x54], eax
mov eax, dword [0x60d618]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x5c], edx
mov edx, dword [0x60d614]
mov dword [esp + 0x60], eax
mov eax, dword [0x60d60c]
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], eax
call sub.MFC42.DLL_CTime::GetTickCount
push 0
call dword [sym.imp.MSVCRT.dll_time]
push eax
call dword [sym.imp.MSVCRT.dll_srand]
mov esi, dword [sym.imp.MSVCRT.dll_rand]
add esp, 8
call esi
cdq
mov ecx, 0x19
idiv ecx
mov ebx, edx
inc ebx
call esi
cdq
mov ecx, 0xc
push 0
idiv ecx
lea ecx, [esp + 0x38]
mov ebp, edx
inc ebp
call sub.MFC42.DLL_CTime::GetLocalTm
mov edi, dword [eax + 0x14]
add edi, 0x76c
call esi
cdq
mov ecx, 0x14
idiv ecx
lea ecx, [esp + 0x24]
sub edi, edx
sub edi, 0x1e
call sub.MFC42.DLL_CString::CString_1
mov eax, edi
mov ecx, 0x64
cdq
idiv ecx
mov byte [esp + 0xb8], 6
lea eax, [esp + 0x24]
push edx
lea edx, [esp + ebp*4 + 0x40]
push edx
push ebx
push str._02d_s_02d
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0x14
lea ecx, [esp + 0x28]
push 0x631998
call sub.MFC42.DLL_CString::CString_3
mov byte [esp + 0xb8], 7
mov edi, 8
call esi
cdq
mov ecx, 0xa
idiv ecx
lea ecx, [esp + 0x28]
add dl, 0x30
push edx
call fcn.0059b7b2
dec edi
jne 0x55902b
call esi
cdq
mov ecx, 0x19
idiv ecx
mov edi, edx
inc edi
call esi
cdq
mov ecx, 0xc
push 0
idiv ecx
lea ecx, [esp + 0x38]
mov ebp, edx
inc ebp
call sub.MFC42.DLL_CTime::GetLocalTm
mov ebx, dword [eax + 0x14]
add ebx, 0x76c
call esi
and eax, 0x80000007
jns 0x559081
dec eax
or eax, 0xfffffff8
inc eax
lea ecx, [esp + 0x20]
lea ebx, [eax + ebx + 1]
call sub.MFC42.DLL_CString::CString_1
mov eax, ebx
mov ecx, 0x64
cdq
idiv ecx
lea eax, [esp + 0x20]
mov byte [esp + 0xb8], 8
push edx
lea edx, [esp + ebp*4 + 0x40]
push edx
push edi
push str._02d_s_02d
push eax
call sub.MFC42.DLL_CString::Format
add esp, 0x14
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0xcc]
push eax
push ecx
push edx
lea eax, [esp + 0x44]
push str.SSR_DOCS__s_HK1_P_CHN__s_CHN__s_M__s__s_P1
push eax
mov byte [esp + 0xd4], 9
call sub.MFC42.DLL_CString::Format
mov esi, dword [esp + 0xdc]
add esp, 0x1c
lea ecx, [esp + 0x30]
push ecx
mov ecx, esi
call sub.MFC42.DLL_CString::CString_2
mov ebx, 1
mov dword [esp + 0x38], ebx
lea ecx, [esp + 0x30]
mov byte [esp + 0xb8], 8
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0xb8], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x28]
mov byte [esp + 0xb8], 6
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0xb8], 4
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0xb8], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0xb8], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc4]
mov byte [esp + 0xb8], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0xc8]
mov byte [esp + 0xb8], 0
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0xb0]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xac
ret 0xc