Function at 0x4254a0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x45613e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push ebp
push esi
push edi
lea eax, [esp + 0xf]
xor esi, esi
push eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x34], esi
call fcn.00409960
mov ecx, dword [esp + 0x38]
mov byte [esp + 0x30], 2
mov dword [esp + 0x10], esi
mov ebp, dword [ecx + 0x2c]
mov eax, dword [ecx + 0x30]
mov edx, dword [ecx + 0x28]
sub eax, ebp
sar eax, 2
mov dword [esp + 0x14], edx
je 0x425662
push ebx
xor ebx, ebx
test eax, eax
jbe 0x425645
mov edx, dword [ebp + ebx*4]
mov edi, 0x463bfc
or ecx, 0xffffffff
xor eax, eax
add edx, 0x94
repne scasb al, byte es:[edi]
mov esi, dword [edx]
mov eax, dword [edx + 4]
not ecx
dec ecx
sub eax, esi
cmp eax, ecx
jne 0x425629
mov edi, 0x463bfc
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x425629
mov ebp, dword [ebp + ebx*4]
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
sub ecx, eax
cmp ecx, 2
jb 0x425629
cmp byte [eax], 0x64
jne 0x425629
cmp byte [eax + 1], 0x5f
jne 0x425629
push 0x70
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov byte [esp + 0x34], 3
je 0x42557d
push ebp
mov ecx, eax
call fcn.00421180
mov edi, dword [esp + 0x3c]
mov byte [esp + 0x34], 2
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x28]
test ecx, ecx
mov eax, dword [eax + ebx*4]
je 0x42559f
push eax
call fcn.004213c0
mov esi, eax
test esi, esi
jne 0x4255f7
push 0x70
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov byte [esp + 0x34], 4
je 0x4255c0
push ebp
mov ecx, eax
call fcn.00421180
jmp 0x4255c2
xor eax, eax
mov edx, dword [esp + 0x18]
mov byte [esp + 0x34], 2
mov esi, eax
mov dword [esp + 0x1c], eax
mov ebp, dword [edx + 0x6c]
lea ecx, [edx + 0x64]
mov edx, dword [edx + 0x68]
cmp edx, ebp
je 0x4255ea
test edx, edx
je 0x4255e4
mov dword [edx], eax
add dword [ecx + 4], 4
jmp 0x4255f7
lea eax, [esp + 0x1c]
push 1
push eax
push edx
call fcn.00427590
mov eax, dword [edi + 0x2c]
lea ecx, [esi + 0x50]
mov edx, dword [eax + ebx*4]
mov eax, dword [ecx + 4]
mov esi, dword [ecx + 8]
mov dword [esp + 0x1c], edx
cmp eax, esi
je 0x42561a
test eax, eax
je 0x425614
mov dword [eax], edx
add dword [ecx + 4], 4
jmp 0x42562d
lea edx, [esp + 0x1c]
push 1
push edx
push eax
call fcn.00427300
jmp 0x42562d
mov edi, dword [esp + 0x3c]
mov ebp, dword [edi + 0x2c]
mov eax, dword [edi + 0x30]
sub eax, ebp
inc ebx
sar eax, 2
cmp ebx, eax
jb 0x4254ff
mov ecx, dword [esp + 0x3c]
mov ebp, dword [ecx + 0x2c]
mov eax, dword [ecx + 0x30]
mov edx, dword [esp + 0x14]
sub eax, ebp
inc edx
sar eax, 2
cmp edx, eax
mov dword [esp + 0x14], edx
jb 0x4254f5
pop ebx
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x30], 5
test edi, edi
je 0x4256c8
mov eax, dword [esp + 0x24]
sub eax, edi
sar eax, 2
shl eax, 2
cmp eax, 0x80
jbe 0x4256a0
push edi
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 4
pop edi
pop esi
pop ebp
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
add esp, 0x28
ret
dec eax
push 0x4651b0
shr eax, 3
lea esi, [eax*4 + 0x463ae8]
call fcn.0040a7e0
add esp, 4
mov ecx, dword [esi]
mov dword [edi], ecx
mov dword [esi], edi
mov dword [0x4651b0], 0
mov ecx, dword [esp + 0x28]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
add esp, 0x28
ret