Function at 0x648530
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xfb9
push 0
push 0
dec ecx
jne 0x648538
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405130
xor eax, eax
push ebp
push 0x648979
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x648994
lea edx, [ebp - 0x7d88]
mov eax, ebx
call fcn.00409afc
push dword [ebp - 0x7d88]
push 0x6489dc
lea edx, [ebp - 0x7d8c]
lea esi, [ebx + 1]
mov eax, esi
call fcn.00409afc
push dword [ebp - 0x7d8c]
push 0x6489fc
lea eax, [ebp - 0x14]
mov edx, 5
call fcn.00405000
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x7d84]
call fcn.004030f8
mov edx, 1
lea eax, [ebp - 0x7d84]
call fcn.004037ec
call fcn.004029dc
xor ecx, ecx
mov dl, 1
mov eax, dword [0x520c78]
call fcn.00523f8c
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
call fcn.004bcf30
lea eax, [ebp - 0x7d90]
push eax
mov edx, dword [ebp - 0x14]
mov eax, 0x648a18
call fcn.00405284
mov edx, eax
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x14]
call fcn.004051a0
mov ecx, dword [ebp - 0x7d90]
lea eax, [ebp - 0x18]
mov edx, 0x648a28
call fcn.00404f8c
lea eax, [ebp - 0x18]
push eax
mov edx, dword [ebp - 0x18]
mov eax, 0x648a44
call fcn.00405284
mov ecx, eax
mov edx, 1
mov eax, dword [ebp - 0x18]
call fcn.004051a0
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x248]
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.00524f10
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x30]
xor edx, edx
call fcn.004b2d38
mov edx, dword [eax]
call dword [edx + 0x58]
mov eax, dword [ebp - 0x1c]
call fcn.004bcf30
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x248]
mov edx, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.00524f10
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0xa1], 0
je 0x6486c7
mov al, byte [0x648a4c]
push eax
lea eax, [ebp - 0x7d94]
push eax
mov ecx, 0x648a58
mov edx, 0x648a68
mov eax, dword [ebp - 0x14]
call fcn.0040f7a4
mov edx, dword [ebp - 0x7d94]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x248]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.00524f10
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0xa1], 0
je 0x648853
mov al, byte [0x648a4c]
push eax
lea eax, [ebp - 0x7d98]
push eax
mov eax, ebx
mov ecx, 0x64
cdq
idiv ecx
mov edi, eax
add edi, edi
lea edi, [edi + edi*4]
mov ecx, edi
mov eax, ebx
push ecx
mov ecx, 0xa
cdq
idiv ecx
pop ecx
add ecx, edx
mov eax, ecx
lea edx, [ebp - 0x7da0]
call fcn.00409afc
mov ecx, dword [ebp - 0x7da0]
lea eax, [ebp - 0x7d9c]
mov edx, 0x648a78
call fcn.00404f8c
mov eax, dword [ebp - 0x7d9c]
push eax
lea edx, [ebp - 0x7da8]
mov eax, ebx
call fcn.00409afc
mov ecx, dword [ebp - 0x7da8]
lea eax, [ebp - 0x7da4]
mov edx, 0x648a78
call fcn.00404f8c
mov edx, dword [ebp - 0x7da4]
mov eax, dword [ebp - 0x14]
pop ecx
call fcn.0040f7a4
mov edx, dword [ebp - 0x7d98]
lea eax, [ebp - 0x14]
call fcn.00404d18
mov al, byte [0x648a4c]
push eax
lea eax, [ebp - 0x7dac]
push eax
inc edi
mov eax, ebx
mov ecx, 0xa
cdq
idiv ecx
add edi, edx
mov eax, edi
lea edx, [ebp - 0x7db4]
call fcn.00409afc
mov ecx, dword [ebp - 0x7db4]
lea eax, [ebp - 0x7db0]
mov edx, 0x648a84
call fcn.00404f8c
mov eax, dword [ebp - 0x7db0]
push eax
lea edx, [ebp - 0x7dbc]
mov eax, esi
call fcn.00409afc
mov ecx, dword [ebp - 0x7dbc]
lea eax, [ebp - 0x7db8]
mov edx, 0x648a84
call fcn.00404f8c
mov edx, dword [ebp - 0x7db8]
mov eax, dword [ebp - 0x14]
pop ecx
call fcn.0040f7a4
mov edx, dword [ebp - 0x7dac]
lea eax, [ebp - 0x14]
call fcn.00404d18
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x248]
mov edx, dword [ebp - 0x14]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.00524f10
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0xa1], 0
je 0x648853
mov al, byte [0x648a4c]
push eax
lea eax, [ebp - 0x7dc0]
push eax
mov ecx, 0x648a58
mov edx, 0x648a68
mov eax, dword [ebp - 0x14]
call fcn.0040f7a4
mov edx, dword [ebp - 0x7dc0]
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x248]
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x1c]
call fcn.00524f10
mov eax, dword [ebp - 0x1c]
call fcn.004bf34c
push 0x7c0a
lea eax, [ebp - 0x20]
mov ecx, 1
mov edx, dword [0x4b0adc]
call fcn.004061e8
add esp, 4
xor eax, eax
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x6488ef
lea ecx, [ebp - 0x20]
mov edx, 1
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx + 0x22c]
mov esi, eax
mov edx, esi
dec edx
test edx, edx
jl 0x6488b4
inc edx
xor ecx, ecx
lea eax, [ebp - 0x7c37]
mov ebx, dword [ebp - 0x20]
mov bl, byte [ebx + ecx]
mov byte [eax], bl
inc ecx
inc eax
dec edx
jne 0x6488a7
xor eax, eax
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x28]
push eax
lea edx, [ebp - 0x7c37]
mov ecx, esi
lea eax, [ebp - 0x7d84]
call fcn.00403248
call fcn.004029dc
mov eax, dword [ebp - 0x28]
add dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
call fcn.004bf664
inc dword [ebp - 0x2c]
cmp dword [ebp - 0x2c], 0x2710
jg 0x6488fb
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0xa1], 0
je 0x648882
mov eax, dword [ebp - 0x1c]
call fcn.004bcf30
mov dl, 1
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax]
call dword [ecx - 4]
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x7dc8], eax
xor eax, eax
mov dword [ebp - 0x7dc4], eax
fild qword [ebp - 0x7dc8]
fstp qword [ebp - 0x10]
wait
lea eax, [ebp - 0x7d84]
call fcn.00403268
call fcn.004029dc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x648980
lea eax, [ebp - 0x7dc0]
mov edx, 0xf
call fcn.00404ca4
lea eax, [ebp - 0x20]
mov edx, dword [0x4b0adc]
call fcn.00406308
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00404ca4
lea eax, [ebp - 4]
call fcn.00404c80
ret