Function at 0x62354c
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 0x623ead
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 0x623e92
mov eax, dword [ebp - 4]
call fcn.006249ac
xor eax, eax
push ebp
push 0x623e80
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00624974
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040ffd8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x63b590]
call fcn.0040d01c
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.004079fc
xor eax, eax
push ebp
push 0x623e63
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.00613668
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x6236cb
mov eax, dword [ebp - 4]
call fcn.00625178
cmp dword [eax + 8], 0
jle 0x62363b
mov eax, dword [ebp - 4]
call fcn.00625178
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
mov edi, eax
dec edi
test edi, edi
jl 0x6236cb
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x6236c7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
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.0040ffd8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x63b590]
call fcn.0040d01c
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.004079fc
inc ebx
dec edi
jne 0x623650
test byte [ebp - 5], 4
je 0x6238da
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
mov edi, eax
dec edi
test edi, edi
jl 0x6237b5
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
call fcn.0061dbb0
test al, al
je 0x6237ad
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x34]
call fcn.00620374
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00623534
test al, al
jne 0x6237ad
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00620314
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.0040ffd8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x63b590]
call fcn.0040d01c
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.004079fc
inc ebx
dec edi
jne 0x6236ee
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
mov edi, eax
sub edi, 2
test edi, edi
jl 0x6238ea
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
cmp dword [eax + 0x34], 0
je 0x6238d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x34]
call fcn.0062047c
add al, 0xfe
sub al, 2
jae 0x6238d0
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00621228
call fcn.0061dbb0
test al, al
jne 0x6238d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
lea edx, [ebp - 0x20]
call fcn.0061d7b8
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00621228
lea edx, [ebp - 0x30]
call fcn.0061d7b8
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x40]
call fcn.00410020
test al, al
je 0x6238d0
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x40]
call fcn.0040ffb4
test al, al
je 0x623887
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0062048c
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.0040ffd8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x63b590]
call fcn.0040d01c
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.004079fc
inc ebx
dec edi
jne 0x6237d0
jmp 0x6238ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x6239bd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x6239cb
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x623914
dec esi
test esi, esi
jle 0x623944
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00621228
cmp dword [eax + 0x34], 0
je 0x623944
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00621228
mov eax, dword [eax + 0x34]
call fcn.0062047c
cmp al, 3
je 0x623913
test esi, esi
jl 0x623969
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00621228
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
pop edx
call fcn.0061f91c
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.0040ffd8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x63b590]
call fcn.0040d01c
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.004079fc
dec ebx
test ebx, ebx
jne 0x62390b
jmp 0x6239cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x623b7e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x623b35
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x30]
call fcn.00613668
mov esi, eax
dec esi
cmp esi, 0
jl 0x623aea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0061c768
mov edx, dword [0x6101b8]
call fcn.00407978
test al, al
jne 0x623ac9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0061c768
mov edx, dword [0x60fdc0]
call fcn.00407978
test al, al
jne 0x623ac9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0061c768
mov edx, dword [0x6109fc]
call fcn.00407978
test al, al
jne 0x623ac9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0061c768
mov edx, dword [0x610b9c]
call fcn.00407978
test al, al
je 0x623ae0
test ebx, ebx
jg 0x623ac9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
dec eax
jne 0x623ae0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006136b0
dec esi
cmp esi, 0xffffffff
jne 0x623a1b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
call fcn.0061ca8c
test al, al
je 0x623b2b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x30]
call fcn.00613668
test eax, eax
jne 0x623b2b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
call fcn.004076a8
dec ebx
cmp ebx, 0xffffffff
jne 0x6239fa
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.0040ffd8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x63b590]
call fcn.0040d01c
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.004079fc
test byte [ebp - 5], 1
je 0x623cc5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x623cd3
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
call fcn.0061ca8c
test al, al
jne 0x623cb9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
call fcn.0061dbb0
test al, al
je 0x623cb9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x34]
call fcn.00620450
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
call fcn.0061f568
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
call fcn.0061ca8c
test al, al
je 0x623c70
test ebx, ebx
jle 0x623c63
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00621228
call fcn.0061dbb0
test al, al
je 0x623c63
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00621228
mov eax, dword [eax + 0x34]
call fcn.00620450
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00621228
mov eax, dword [eax + 0x34]
pop edx
call fcn.00620458
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006136b0
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.0040ffd8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x63b590]
call fcn.0040d01c
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.004079fc
dec ebx
cmp ebx, 0xffffffff
jne 0x623b9f
jmp 0x623cd3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x623e09
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x623dc0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
cmp dword [eax + 0x34], 0
je 0x623d75
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00620450
test ax, ax
je 0x623d3f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
dec eax
jne 0x623d75
mov eax, esi
call fcn.00620308
test al, al
jne 0x623d75
mov eax, esi
call fcn.00620460
test al, al
jne 0x623d75
mov eax, esi
call fcn.0062047c
sub al, 2
jb 0x623d6e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00613668
dec eax
jne 0x623d75
mov eax, esi
call fcn.004076a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
call fcn.0061ca8c
test al, al
je 0x623db6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
mov eax, dword [eax + 0x30]
call fcn.00613668
test eax, eax
jne 0x623db6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00621228
call fcn.004076a8
dec ebx
cmp ebx, 0xffffffff
jne 0x623d02
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.0040ffd8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x63b590]
call fcn.0040d01c
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.004079fc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x623e6a
call fcn.00406860
test eax, eax
jne 0x623e26
mov ebx, 0x64
jmp 0x623e28
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.0040ffd8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x63b590]
call fcn.0040d01c
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.004079fc
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x623eb4
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.004093c4
ret