Function at 0x554660
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x5c0167
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 [0x63ac20]
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 0x55478a
mov al, byte [edx + ebx]
cmp al, 0x80
mov byte [esp + 0x13], al
jae 0x554706
mov byte [esp + ebp + 0x70], al
inc ebp
inc edx
mov byte [esp + ebp + 0x70], 0
jmp 0x554776
mov eax, dword [esp + 0x2c]
xor esi, esi
mov ecx, dword [eax + 8]
test ecx, ecx
mov dword [esp + 0x1c], ecx
jle 0x55478a
mov edi, dword [eax + 4]
mov eax, dword [edi]
mov bl, byte [esp + 0x13]
cmp byte [eax], bl
jne 0x554735
mov ebx, dword [esp + 0x14]
mov cl, byte [eax + 1]
cmp cl, byte [edx + ebx + 1]
je 0x55473f
mov ecx, dword [esp + 0x1c]
inc esi
add edi, 4
cmp esi, ecx
jge 0x55478a
jmp 0x55471a
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 0x5546ee
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString_3
push 0x613e34
lea ecx, [esp + 0x1c]
mov byte [esp + 0xbc], 4
call fcn.00596eca
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 0x5548ad
mov al, byte [edx + ebx]
cmp al, 0x80
mov byte [esp + 0x13], al
jae 0x554829
mov byte [esp + ebp + 0x70], al
inc ebp
inc edx
mov byte [esp + ebp + 0x70], 0
jmp 0x554899
mov eax, dword [esp + 0x2c]
xor esi, esi
mov ecx, dword [eax + 8]
test ecx, ecx
mov dword [esp + 0x1c], ecx
jle 0x5548ad
mov edi, dword [eax + 4]
mov eax, dword [edi]
mov bl, byte [esp + 0x13]
cmp byte [eax], bl
jne 0x554858
mov ebx, dword [esp + 0x14]
mov cl, byte [eax + 1]
cmp cl, byte [edx + ebx + 1]
je 0x554862
mov ecx, dword [esp + 0x1c]
inc esi
add edi, 4
cmp esi, ecx
jge 0x5548ad
jmp 0x55483d
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 0x554811
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00596eca
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::MakeUpper
mov ecx, dword [0x607638]
mov dl, byte [0x63547c]
xor eax, eax
mov dword [esp + 0x40], ecx
mov ecx, dword [0x607628]
mov word [esp + 0x3d], ax
mov byte [esp + 0x3c], dl
mov edx, dword [0x607634]
mov byte [esp + 0x3f], al
mov eax, dword [0x607630]
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x60761c]
mov dword [esp + 0x44], edx
mov edx, dword [0x60762c]
mov dword [esp + 0x48], eax
mov eax, dword [0x607624]
mov dword [esp + 0x58], ecx
mov ecx, dword [0x607610]
mov dword [esp + 0x50], edx
mov edx, dword [0x607620]
mov dword [esp + 0x54], eax
mov eax, dword [0x607618]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x5c], edx
mov edx, dword [0x607614]
mov dword [esp + 0x60], eax
mov eax, dword [0x60760c]
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 0x62b564
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.00596ed0
dec edi
jne 0x5549fb
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 0x554a51
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