Function at 0x621b94
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 0x6224f5
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 0x6224da
mov eax, dword [ebp - 4]
call fcn.00622fa0
xor eax, eax
push ebp
push 0x6224c8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00622f68
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 [0x687ef0]
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 0x6224ab
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.00612fac
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x621d13
mov eax, dword [ebp - 4]
call fcn.0062376c
cmp dword [eax + 8], 0
jle 0x621c83
mov eax, dword [ebp - 4]
call fcn.0062376c
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
mov edi, eax
dec edi
test edi, edi
jl 0x621d13
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x621d0f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
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 [0x687ef0]
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 0x621c98
test byte [ebp - 5], 4
je 0x621f22
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
mov edi, eax
dec edi
test edi, edi
jl 0x621dfd
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
call fcn.0061d398
test al, al
je 0x621df5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x34]
call fcn.0061fb10
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00621b7c
test al, al
jne 0x621df5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0061fab0
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 [0x687ef0]
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 0x621d36
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
mov edi, eax
sub edi, 2
test edi, edi
jl 0x621f32
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
cmp dword [eax + 0x34], 0
je 0x621f18
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x34]
call fcn.0061fc18
add al, 0xfe
sub al, 2
jae 0x621f18
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00620958
call fcn.0061d398
test al, al
jne 0x621f18
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
lea edx, [ebp - 0x20]
call fcn.0061d058
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00620958
lea edx, [ebp - 0x30]
call fcn.0061d058
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x40]
call fcn.0040cfb4
test al, al
je 0x621f18
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x40]
call fcn.0040ceb0
test al, al
je 0x621ecf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0061fc28
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 [0x687ef0]
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 0x621e18
jmp 0x621f32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x622005
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x622013
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x621f5c
dec esi
test esi, esi
jle 0x621f8c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00620958
cmp dword [eax + 0x34], 0
je 0x621f8c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00620958
mov eax, dword [eax + 0x34]
call fcn.0061fc18
cmp al, 3
je 0x621f5b
test esi, esi
jl 0x621fb1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00620958
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
pop edx
call fcn.0061f108
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 [0x687ef0]
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 0x621f53
jmp 0x622013
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x6221c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x62217d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x30]
call fcn.00612fac
mov esi, eax
dec esi
cmp esi, 0
jl 0x622132
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0061c010
mov edx, dword [0x60fbcc]
call fcn.00405ae4
test al, al
jne 0x622111
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0061c010
mov edx, dword [0x60f7d4]
call fcn.00405ae4
test al, al
jne 0x622111
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0061c010
mov edx, dword [0x610410]
call fcn.00405ae4
test al, al
jne 0x622111
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0061c010
mov edx, dword [0x6105b0]
call fcn.00405ae4
test al, al
je 0x622128
test ebx, ebx
jg 0x622111
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
dec eax
jne 0x622128
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00612ff4
dec esi
cmp esi, 0xffffffff
jne 0x622063
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
call fcn.0061c32c
test al, al
je 0x622173
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x30]
call fcn.00612fac
test eax, eax
jne 0x622173
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
call fcn.004058a8
dec ebx
cmp ebx, 0xffffffff
jne 0x622042
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 [0x687ef0]
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 0x62230d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x62231b
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
call fcn.0061c32c
test al, al
jne 0x622301
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
call fcn.0061d398
test al, al
je 0x622301
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x34]
call fcn.0061fbec
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
call fcn.0061ed54
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
call fcn.0061c32c
test al, al
je 0x6222b8
test ebx, ebx
jle 0x6222ab
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00620958
call fcn.0061d398
test al, al
je 0x6222ab
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00620958
mov eax, dword [eax + 0x34]
call fcn.0061fbec
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00620958
mov eax, dword [eax + 0x34]
pop edx
call fcn.0061fbf4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00612ff4
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 [0x687ef0]
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 0x6221e7
jmp 0x62231b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x622451
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x622408
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
cmp dword [eax + 0x34], 0
je 0x6223bd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.0061fbec
test ax, ax
je 0x622387
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
dec eax
jne 0x6223bd
mov eax, esi
call fcn.0061faa4
test al, al
jne 0x6223bd
mov eax, esi
call fcn.0061fbfc
test al, al
jne 0x6223bd
mov eax, esi
call fcn.0061fc18
sub al, 2
jb 0x6223b6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00612fac
dec eax
jne 0x6223bd
mov eax, esi
call fcn.004058a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
call fcn.0061c32c
test al, al
je 0x6223fe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
mov eax, dword [eax + 0x30]
call fcn.00612fac
test eax, eax
jne 0x6223fe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00620958
call fcn.004058a8
dec ebx
cmp ebx, 0xffffffff
jne 0x62234a
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 [0x687ef0]
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 0x6224b2
call fcn.00404ddc
test eax, eax
jne 0x62246e
mov ebx, 0x64
jmp 0x622470
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 [0x687ef0]
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 0x6224fc
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.004074f4
ret