Function at 0x41f230
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x5c50b8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x24
mov eax, dword [esp + 0x34]
push ebx
push ebp
push esi
push edi
mov ebx, ecx
xor edi, edi
mov dword [esp + 0x14], ebx
push edi
lea ecx, [ebx + 0x220]
push eax
call fcn.004c0820
dec eax
cmp eax, 0xffffffff
mov dword [esp + 0x30], eax
je 0x41f294
mov edx, dword [ebx + 0x494]
mov ecx, dword [edx + 0x48]
mov edx, dword [esp + 0x48]
mov ebp, dword [ecx + eax*4]
mov eax, dword [edx + 0xc]
push eax
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.msvcrt.dll_wcscmp]
add esp, 8
cmp eax, edi
je 0x41f2c8
mov esi, dword [esp + 0x48]
mov ecx, dword [ebx + 0x494]
mov eax, dword [esi + 0xc]
push eax
call fcn.004f9d20
mov ebp, eax
push esi
mov ecx, ebp
call fcn.00504850
mov ecx, dword [esp + 0x4c]
push ecx
push edi
mov ecx, ebp
call fcn.004f4950
mov ecx, eax
call fcn.004ff300
mov dword [ebp + 0x48], edi
mov ecx, dword [esp + 0x4c]
call fcn.00501d40
mov esi, eax
cmp esi, edi
mov dword [esp + 0x2c], esi
jne 0x41f45b
push edi
mov ecx, ebp
call fcn.004f4950
mov esi, eax
xor eax, eax
mov ecx, dword [esi + 0x28]
cmp ecx, edi
jle 0x41f307
mov edx, dword [esi + 0x38]
inc eax
cmp eax, ecx
mov word [edx + eax*4 - 4], di
mov edx, dword [esi + 0x38]
mov word [edx + eax*4 - 2], di
jl 0x41f2f2
mov eax, dword [ebx + 0x2d4]
mov ecx, dword [ebx + 0x2d8]
cmp eax, ecx
mov dword [esp + 0x10], eax
jge 0x41f3f9
jmp 0x41f327
mov eax, dword [esp + 0x10]
xor edi, edi
push eax
lea eax, [esp + 0x20]
push edi
push eax
lea ecx, [ebx + 0x220]
call fcn.004c4290
mov dword [esp + 0x3c], edi
mov edi, dword [esi + 0x28]
dec edi
js 0x41f3d1
mov ecx, dword [esi + 0x24]
mov edx, dword [esp + 0x1c]
push edx
lea eax, [ecx + edi*4]
mov eax, dword [ecx + edi*4]
push eax
call dword [sym.imp.msvcrt.dll_wcscmp]
add esp, 8
test eax, eax
je 0x41f368
dec edi
jns 0x41f347
jmp 0x41f3d1
cmp edi, 0xffffffff
je 0x41f3d1
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
push ecx
lea eax, [esp + 0x28]
push edx
push eax
lea ecx, [ebx + 0x220]
call fcn.004c4290
mov ecx, dword [esi + 0x38]
mov eax, dword [eax]
shl edi, 2
mov dword [esp + 0x28], edi
add edi, ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x20], 0
push ecx
push eax
call dword [sym.imp.msvcrt.dll_wcstod]
fmul qword [0x5e46c0]
add esp, 8
call sub.msvcrt.dll__ftol
lea ecx, [esp + 0x24]
mov word [edi], ax
call sub.mfc42u.dll_CString::CString
mov edx, dword [esi + 0x38]
mov eax, dword [esp + 0x28]
mov word [eax + edx + 2], 0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3c], 0xffffffff
call sub.mfc42u.dll_CString::CString
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x2d8]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x41f321
mov ecx, ebp
mov edi, 1
call fcn.004f4940
cmp eax, edi
jle 0x41f593
mov ecx, dword [ebx + 0x494]
push edi
mov edx, dword [ecx + 0xec]
mov ecx, ebp
mov eax, dword [edx + edi*4]
mov dword [esp + 0x2c], eax
call fcn.004f4950
mov ecx, dword [esp + 0x28]
push eax
push esi
call fcn.00501f20
mov ecx, dword [esp + 0x4c]
lea edx, [ecx + edi*4]
mov ecx, ebp
push edx
push edi
call fcn.004f4950
mov ecx, eax
call fcn.004ff300
mov ecx, ebp
inc edi
call fcn.004f4940
cmp edi, eax
jl 0x41f40d
jmp 0x41f593
mov ecx, ebp
call fcn.004f4940
test eax, eax
jle 0x41f481
push edi
mov ecx, ebp
call fcn.004f4950
mov ecx, eax
call fcn.004ff7e0
mov ecx, ebp
inc edi
call fcn.004f4940
cmp edi, eax
jl 0x41f466
push esi
mov ecx, ebp
call fcn.004f4950
mov ecx, dword [ebx + 0x2d8]
mov edi, eax
mov eax, dword [ebx + 0x2d4]
cmp eax, ecx
mov dword [esp + 0x10], eax
jge 0x41f584
jmp 0x41f4a9
mov eax, dword [esp + 0x10]
push eax
lea eax, [esp + 0x20]
push 0
push eax
lea ecx, [ebx + 0x220]
call fcn.004c4290
mov esi, dword [edi + 0x28]
mov dword [esp + 0x3c], 1
dec esi
js 0x41f558
mov ecx, dword [edi + 0x24]
mov edx, dword [esp + 0x1c]
push edx
lea eax, [ecx + esi*4]
mov eax, dword [ecx + esi*4]
push eax
call dword [sym.imp.msvcrt.dll_wcscmp]
add esp, 8
test eax, eax
je 0x41f4ef
dec esi
jns 0x41f4ce
jmp 0x41f558
cmp esi, 0xffffffff
je 0x41f558
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
push ecx
lea eax, [esp + 0x28]
push edx
push eax
lea ecx, [ebx + 0x220]
call fcn.004c4290
mov ecx, dword [edi + 0x38]
mov eax, dword [eax]
shl esi, 2
mov dword [esp + 0x20], esi
add esi, ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x28], 0
push ecx
push eax
call dword [sym.imp.msvcrt.dll_wcstod]
fmul qword [0x5e46c0]
add esp, 8
call sub.msvcrt.dll__ftol
lea ecx, [esp + 0x24]
mov word [esi], ax
call sub.mfc42u.dll_CString::CString
mov edx, dword [edi + 0x38]
mov eax, dword [esp + 0x20]
mov word [eax + edx + 2], 0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3c], 0xffffffff
call sub.mfc42u.dll_CString::CString
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x2d8]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x41f4a5
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x4c]
lea edx, [ecx + esi*4]
mov ecx, edi
push edx
call fcn.004ff300
mov esi, dword [ebx + 0x2d4]
xor edi, edi
dec esi
cmp esi, edi
mov dword [esp + 0x10], esi
jne 0x41f5ce
mov eax, dword [ebp + 0xfc]
cmp eax, edi
je 0x41f5bd
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov dword [ebp + 0xfc], edi
mov dword [ebp + 0x104], edi
mov dword [ebp + 0x100], edi
jmp 0x41f6f2
mov edx, dword [ebp + 0xfc]
cmp edx, edi
jne 0x41f615
lea edi, [esi*4]
push edi
call sub.mfc42u.dll_operatornew
mov edx, eax
mov ecx, edi
mov dword [ebp + 0xfc], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
add esp, 4
and ecx, 3
rep stosb byte es:[edi], al
mov dword [ebp + 0x104], esi
mov dword [ebp + 0x100], esi
jmp 0x41f6f2
mov ecx, dword [ebp + 0x104]
cmp esi, ecx
jg 0x41f63f
mov eax, dword [ebp + 0x100]
cmp esi, eax
jle 0x41f634
mov ecx, esi
lea edi, [edx + eax*4]
sub ecx, eax
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [ebp + 0x100], esi
jmp 0x41f6f2
mov eax, dword [ebp + 0x108]
cmp eax, edi
jne 0x41f670
mov eax, dword [ebp + 0x100]
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x41f664
mov eax, 4
jmp 0x41f670
cmp eax, 0x400
jle 0x41f670
mov eax, 0x400
add eax, ecx
cmp esi, eax
mov dword [esp + 0x4c], eax
jl 0x41f67e
mov dword [esp + 0x4c], esi
mov eax, dword [esp + 0x4c]
lea ecx, [eax*4]
push ecx
call sub.mfc42u.dll_operatornew
mov ecx, dword [ebp + 0x100]
mov esi, dword [ebp + 0xfc]
shl ecx, 2
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x30], eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x14]
mov edx, dword [ebp + 0x100]
mov ecx, esi
sub ecx, edx
lea edx, [eax + edx*4]
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0xfc]
push eax
call sub.mfc42u.dll_operatordelete
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x54]
add esp, 8
mov dword [ebp + 0xfc], eax
mov dword [ebp + 0x100], esi
mov dword [ebp + 0x104], ecx
lea ecx, [esp + 0x18]
call sub.mfc42u.dll_CString::CString_3
lea ecx, [ebp + 0x10]
mov dword [esp + 0x3c], 2
call sub.mfc42u.dll_CString::Empty
cmp esi, 1
jne 0x41f7ab
push 0x618ea8
call sub.etinfo.dll_unsigned_short_int_const____cdecl_mgLoadLocateString_unsigned_short_int_const__
add esp, 4
lea edx, [esp + 0x2c]
lea edi, [ebx + 0x220]
mov dword [esp + 0x4c], eax
push esi
push esi
push edx
mov ecx, edi
call fcn.004c4290
mov ecx, dword [esp + 0x4c]
mov edx, dword [eax]
push ecx
push edx
call dword [sym.imp.msvcrt.dll_wcscmp]
add esp, 8
lea ecx, [esp + 0x2c]
test eax, eax
sete byte [esp + 0x4c]
call sub.mfc42u.dll_CString::CString
mov al, byte [esp + 0x4c]
test al, al
je 0x41f7ab
mov eax, dword [esp + 0x44]
push esi
lea ecx, [esp + 0x50]
push eax
push ecx
mov ecx, edi
call fcn.004c4290
lea esi, [ebp + 0x10]
push eax
mov ecx, esi
mov byte [esp + 0x40], 3
call sub.mfc42u.dll_CString::operator_2
lea ecx, [esp + 0x4c]
mov byte [esp + 0x3c], 2
call sub.mfc42u.dll_CString::CString
mov esi, dword [esi]
mov edi, dword [ebp + 0xfc]
push esi
call dword [sym.imp.msvcrt.dll__wtoi]
add esp, 4
mov dword [edi], eax
jmp 0x41f881
test esi, esi
jle 0x41f86d
xor ebx, ebx
mov edi, 1
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x14]
push edi
lea eax, [esp + 0x50]
push edx
push eax
add ecx, 0x220
call fcn.004c4290
mov eax, dword [eax]
mov ecx, dword [ebp + 0xfc]
mov esi, ebx
push eax
add esi, ecx
call dword [sym.imp.msvcrt.dll__wtoi]
add esp, 4
lea ecx, [esp + 0x4c]
mov dword [esi], eax
call sub.mfc42u.dll_CString::CString
mov edx, dword [ebp + 0xfc]
cmp dword [ebx + edx], 0
je 0x41f856
mov ecx, dword [esp + 0x14]
push edi
lea eax, [esp + 0x28]
push edi
push eax
add ecx, 0x220
call fcn.004c4290
mov edx, dword [ebp + 0xfc]
mov byte [esp + 0x3c], 4
mov ecx, dword [ebx + edx]
mov edx, dword [eax]
push ecx
push edx
lea eax, [esp + 0x20]
push 0x618e98
push eax
call sub.mfc42u.dll_CString::Format_1
add esp, 0x10
lea ecx, [esp + 0x24]
mov byte [esp + 0x3c], 2
call sub.mfc42u.dll_CString::CString
lea ecx, [esp + 0x18]
push ecx
lea ecx, [ebp + 0x10]
call sub.mfc42u.dll_CString::operator_1
mov eax, dword [esp + 0x10]
inc edi
add ebx, 4
lea edx, [edi - 1]
cmp edx, eax
jl 0x41f7ba
mov ebx, dword [esp + 0x14]
mov eax, dword [ebp + 0x10]
lea ecx, [ebp + 0x10]
mov eax, dword [eax - 8]
test eax, eax
je 0x41f881
dec eax
push eax
call sub.mfc42u.dll_CString::GetBufferSetLength
push 0x64
call dword [sym.imp.kernel32.dll_Sleep]
lea ecx, [ebp + 0x160]
push ecx
call dword [sym.imp.kernel32.dll_GetSystemTimeAsFileTime]
mov ecx, dword [ebx + 0x494]
push ebp
call fcn.004fa940
test eax, eax
jne 0x41f8af
mov dword [ebp + 0x48], 1
jmp 0x41f928
cmp dword [esp + 0x30], 0xffffffff
jne 0x41f8c3
mov ecx, dword [ebx + 0x494]
call fcn.004fbf80
jmp 0x41f928
mov eax, dword [esp + 0x48]
mov dword [ebp + 0x48], 0
mov edx, dword [eax + 0x30]
mov dword [ebp + 0x30], edx
mov ecx, dword [eax + 0x34]
mov dword [ebp + 0x34], ecx
mov edx, dword [eax + 0x28]
mov dword [ebp + 0x28], edx
mov ecx, dword [eax + 0x2c]
mov dword [ebp + 0x2c], ecx
mov edx, dword [eax + 0x18]
mov dword [ebp + 0x18], edx
mov ecx, dword [eax + 0x1c]
mov dword [ebp + 0x1c], ecx
mov edx, dword [eax + 0x16c]
mov dword [ebp + 0x16c], edx
mov ecx, dword [eax + 0x20]
mov dword [ebp + 0x20], ecx
mov edx, dword [eax + 0x40]
mov dword [ebp + 0x40], edx
mov ecx, dword [eax + 0x44]
mov dword [ebp + 0x44], ecx
mov edx, dword [eax + 0xf4]
mov dword [ebp + 0xf4], edx
mov eax, dword [eax + 0xf0]
mov dword [ebp + 0xf0], eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x3c], 0xffffffff
call sub.mfc42u.dll_CString::CString
mov ecx, dword [esp + 0x34]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x30
ret 0xc