Function at 0x628188
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff8c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x628ae9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x628ace
mov eax, dword [ebp - 4]
call fcn.00629594
xor eax, eax
push ebp
push 0x628abc
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0062955c
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040ced4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x688e44]
call fcn.0040b760
mov eax, dword [ebp - 0x54]
push eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.00405b68
xor eax, eax
push ebp
push 0x628a9f
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x628307
mov eax, dword [ebp - 4]
call fcn.00629d60
cmp dword [eax + 8], 0
jle 0x628277
mov eax, dword [ebp - 4]
call fcn.00629d60
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
mov edi, eax
dec edi
test edi, edi
jl 0x628307
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x628303
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040ced4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x688e44]
call fcn.0040b760
mov eax, dword [ebp - 0x58]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.00405b68
inc ebx
dec edi
jne 0x62828c
test byte [ebp - 5], 4
je 0x628516
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
mov edi, eax
dec edi
test edi, edi
jl 0x6283f1
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
call fcn.0062398c
test al, al
je 0x6283e9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x34]
call fcn.00626104
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00628170
test al, al
jne 0x6283e9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.006260a4
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040ced4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x688e44]
call fcn.0040b760
mov eax, dword [ebp - 0x5c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.00405b68
inc ebx
dec edi
jne 0x62832a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
mov edi, eax
sub edi, 2
test edi, edi
jl 0x628526
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
cmp dword [eax + 0x34], 0
je 0x62850c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x34]
call fcn.0062620c
add al, 0xfe
sub al, 2
jae 0x62850c
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00626f4c
call fcn.0062398c
test al, al
jne 0x62850c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
lea edx, [ebp - 0x20]
call fcn.0062364c
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00626f4c
lea edx, [ebp - 0x30]
call fcn.0062364c
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x40]
call fcn.0040cfb4
test al, al
je 0x62850c
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x40]
call fcn.0040ceb0
test al, al
je 0x6284c3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0062621c
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040ced4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x688e44]
call fcn.0040b760
mov eax, dword [ebp - 0x60]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.00405b68
inc ebx
dec edi
jne 0x62840c
jmp 0x628526
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x6285f9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x628607
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x628550
dec esi
test esi, esi
jle 0x628580
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00626f4c
cmp dword [eax + 0x34], 0
je 0x628580
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00626f4c
mov eax, dword [eax + 0x34]
call fcn.0062620c
cmp al, 3
je 0x62854f
test esi, esi
jl 0x6285a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00626f4c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
pop edx
call fcn.006256fc
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040ced4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x688e44]
call fcn.0040b760
mov eax, dword [ebp - 0x64]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.00405b68
dec ebx
test ebx, ebx
jne 0x628547
jmp 0x628607
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x6287ba
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x628771
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x30]
call fcn.006195a0
mov esi, eax
dec esi
cmp esi, 0
jl 0x628726
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00622604
mov edx, dword [0x6161c0]
call fcn.00405ae4
test al, al
jne 0x628705
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00622604
mov edx, dword [0x615dc8]
call fcn.00405ae4
test al, al
jne 0x628705
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00622604
mov edx, dword [0x616a04]
call fcn.00405ae4
test al, al
jne 0x628705
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00622604
mov edx, dword [0x616ba4]
call fcn.00405ae4
test al, al
je 0x62871c
test ebx, ebx
jg 0x628705
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
dec eax
jne 0x62871c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006195e8
dec esi
cmp esi, 0xffffffff
jne 0x628657
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
call fcn.00622920
test al, al
je 0x628767
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x30]
call fcn.006195a0
test eax, eax
jne 0x628767
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
call fcn.004058a8
dec ebx
cmp ebx, 0xffffffff
jne 0x628636
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040ced4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x688e44]
call fcn.0040b760
mov eax, dword [ebp - 0x68]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.00405b68
test byte [ebp - 5], 1
je 0x628901
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x62890f
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
call fcn.00622920
test al, al
jne 0x6288f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
call fcn.0062398c
test al, al
je 0x6288f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x34]
call fcn.006261e0
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
call fcn.00625348
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
call fcn.00622920
test al, al
je 0x6288ac
test ebx, ebx
jle 0x62889f
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00626f4c
call fcn.0062398c
test al, al
je 0x62889f
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00626f4c
mov eax, dword [eax + 0x34]
call fcn.006261e0
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00626f4c
mov eax, dword [eax + 0x34]
pop edx
call fcn.006261e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006195e8
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040ced4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x688e44]
call fcn.0040b760
mov eax, dword [ebp - 0x6c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.00405b68
dec ebx
cmp ebx, 0xffffffff
jne 0x6287db
jmp 0x62890f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x628a45
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x6289fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
cmp dword [eax + 0x34], 0
je 0x6289b1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.006261e0
test ax, ax
je 0x62897b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
dec eax
jne 0x6289b1
mov eax, esi
call fcn.00626098
test al, al
jne 0x6289b1
mov eax, esi
call fcn.006261f0
test al, al
jne 0x6289b1
mov eax, esi
call fcn.0062620c
sub al, 2
jb 0x6289aa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006195a0
dec eax
jne 0x6289b1
mov eax, esi
call fcn.004058a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
call fcn.00622920
test al, al
je 0x6289f2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
mov eax, dword [eax + 0x30]
call fcn.006195a0
test eax, eax
jne 0x6289f2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00626f4c
call fcn.004058a8
dec ebx
cmp ebx, 0xffffffff
jne 0x62893e
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040ced4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x688e44]
call fcn.0040b760
mov eax, dword [ebp - 0x70]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.00405b68
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x628aa6
call fcn.00404ddc
test eax, eax
jne 0x628a62
mov ebx, 0x64
jmp 0x628a64
xor ebx, ebx
push ebx
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040ced4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x688e44]
call fcn.0040b760
mov eax, dword [ebp - 0x74]
push eax
mov cl, 2
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.00405b68
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x628af0
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.004074f4
ret