Function at 0x57a6f0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x62a658
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
mov eax, dword [esp + 0x30]
push esi
push edi
mov edi, ecx
lea ecx, [esp + 8]
push eax
push ecx
mov ecx, edi
call fcn.0057a6a0
mov edx, dword [esp + 8]
mov dword [esp + 0x2c], 0
mov eax, dword [edx - 8]
test eax, eax
jne 0x57a73e
push str._1__1
lea ecx, [esp + 0xc]
call fcn.004ea6a0
mov eax, dword [esp + 8]
mov dword [esp + 0xc], 0
lea ecx, [esp + 8]
mov esi, dword [eax - 8]
call fcn.004e9cc0
mov eax, dword [esp + 8]
cmp word [eax + esi*2 - 2], 0x64
sete cl
test cl, cl
mov byte [esp + 0x38], cl
je 0x57a779
mov eax, dword [eax - 8]
lea ecx, [esp + 8]
dec eax
push eax
call fcn.004ebfc0
push ebx
lea ecx, [esp + 0x20]
push 0x2c
push ecx
lea ecx, [esp + 0x14]
call fcn.004eb9c0
lea edx, [esp + 0x14]
push 0xa
push edx
mov ecx, eax
mov byte [esp + 0x38], 1
call fcn.004ec060
test al, al
je 0x57a7ed
lea eax, [esp + 0x18]
push 0x2c
push eax
lea ecx, [esp + 0x14]
call fcn.004eb870
lea ecx, [esp + 0x10]
push 0xa
push ecx
mov ecx, eax
mov byte [esp + 0x38], 2
call fcn.004ec060
mov edx, dword [esp + 0x18]
test al, al
mov ecx, dword [edx - 0xc]
lea eax, [edx - 0xc]
sete bl
cmp ecx, 0xffffffff
je 0x57a7e9
dec ecx
test ecx, ecx
mov dword [eax], ecx
jne 0x57a7e9
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
test bl, bl
je 0x57a7ef
mov bl, 1
mov eax, dword [esp + 0x20]
mov byte [esp + 0x30], 0
add eax, 0xfffffff4
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x57a813
dec ecx
test ecx, ecx
mov dword [eax], ecx
jne 0x57a813
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
test bl, bl
pop ebx
je 0x57a864
call fcn.004f0590
test eax, eax
je 0x57a831
mov edx, dword [eax]
push 0
push str.Cannot_parse_coordinates_from__s.
mov ecx, eax
call dword [edx + 8]
jmp 0x57a836
mov eax, str.Cannot_parse_coordinates_from__s.
mov ecx, dword [esp + 8]
push ecx
push eax
call fcn.004f4290
mov esi, dword [esp + 0x3c]
mov edx, dword [0x7011f4]
mov ecx, dword [esp + 0x10]
add esp, 8
mov dword [esi], edx
mov eax, dword [0x7011f8]
mov dword [esi + 4], eax
lea eax, [ecx - 0xc]
jmp 0x57a946
mov al, byte [esp + 0x38]
test al, al
je 0x57a92e
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x57a8b4
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
lea edx, [esp + 0x1c]
lea eax, [esp + 0x14]
push edx
push eax
call fcn.00462b80
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 8]
mov dword [esi], ecx
mov dword [esi + 4], edx
add eax, 0xfffffff4
jmp 0x57a946
mov ecx, dword [edi + 0x38]
test ecx, ecx
je 0x57a8f4
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
lea edx, [esp + 0x1c]
lea eax, [esp + 0x14]
push edx
push eax
call fcn.00462b80
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 8]
mov dword [esi], ecx
mov dword [esi + 4], edx
add eax, 0xfffffff4
jmp 0x57a946
call fcn.004f0590
test eax, eax
je 0x57a90d
mov edx, dword [eax]
push 0
push str.Cannot_convert_dialog_units:_dialog_unknown.
mov ecx, eax
call dword [edx + 8]
jmp 0x57a912
mov eax, str.Cannot_convert_dialog_units:_dialog_unknown.
push eax
call fcn.004f4290
mov esi, dword [esp + 0x38]
mov eax, dword [0x7011f4]
add esp, 4
mov dword [esi], eax
mov ecx, dword [0x7011f8]
jmp 0x57a93c
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esi], eax
mov edx, dword [esp + 8]
mov dword [esi + 4], ecx
lea eax, [edx - 0xc]
mov ecx, dword [eax]
cmp ecx, 0xffffffff
je 0x57a95e
dec ecx
test ecx, ecx
mov dword [eax], ecx
jne 0x57a95e
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
mov ecx, dword [esp + 0x24]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x28
ret 0xc