Function at 0x636ce0
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 0x637641
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 0x637626
mov eax, dword [ebp - 4]
call fcn.006380ec
xor eax, eax
push ebp
push 0x637614
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.006380b4
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040f26c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x68ad50]
call fcn.0040d980
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.00407e80
xor eax, eax
push ebp
push 0x6375f7
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.0062809c
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x636e5f
mov eax, dword [ebp - 4]
call fcn.006388b8
cmp dword [eax + 8], 0
jle 0x636dcf
mov eax, dword [ebp - 4]
call fcn.006388b8
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
mov edi, eax
dec edi
test edi, edi
jl 0x636e5f
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x636e5b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
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.0040f26c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x68ad50]
call fcn.0040d980
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.00407e80
inc ebx
dec edi
jne 0x636de4
test byte [ebp - 5], 4
je 0x63706e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
mov edi, eax
dec edi
test edi, edi
jl 0x636f49
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
call fcn.006324dc
test al, al
je 0x636f41
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x34]
call fcn.00634c50
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00636cc8
test al, al
jne 0x636f41
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00634bf0
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.0040f26c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x68ad50]
call fcn.0040d980
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.00407e80
inc ebx
dec edi
jne 0x636e82
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
mov edi, eax
sub edi, 2
test edi, edi
jl 0x63707e
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
cmp dword [eax + 0x34], 0
je 0x637064
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x34]
call fcn.00634d58
add al, 0xfe
sub al, 2
jae 0x637064
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00635aa4
call fcn.006324dc
test al, al
jne 0x637064
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
lea edx, [ebp - 0x20]
call fcn.0063219c
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00635aa4
lea edx, [ebp - 0x30]
call fcn.0063219c
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x40]
call fcn.0040f2b4
test al, al
je 0x637064
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x40]
call fcn.0040f248
test al, al
je 0x63701b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00634d68
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.0040f26c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x68ad50]
call fcn.0040d980
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.00407e80
inc ebx
dec edi
jne 0x636f64
jmp 0x63707e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x637151
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x63715f
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x6370a8
dec esi
test esi, esi
jle 0x6370d8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00635aa4
cmp dword [eax + 0x34], 0
je 0x6370d8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00635aa4
mov eax, dword [eax + 0x34]
call fcn.00634d58
cmp al, 3
je 0x6370a7
test esi, esi
jl 0x6370fd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00635aa4
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
pop edx
call fcn.00634248
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.0040f26c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x68ad50]
call fcn.0040d980
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.00407e80
dec ebx
test ebx, ebx
jne 0x63709f
jmp 0x63715f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x637312
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x6372c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x30]
call fcn.0062809c
mov esi, eax
dec esi
cmp esi, 0
jl 0x63727e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00631154
mov edx, dword [0x624cac]
call fcn.00407dfc
test al, al
jne 0x63725d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00631154
mov edx, dword [0x6248b4]
call fcn.00407dfc
test al, al
jne 0x63725d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00631154
mov edx, dword [0x6254f0]
call fcn.00407dfc
test al, al
jne 0x63725d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00631154
mov edx, dword [0x625690]
call fcn.00407dfc
test al, al
je 0x637274
test ebx, ebx
jg 0x63725d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
dec eax
jne 0x637274
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006280e4
dec esi
cmp esi, 0xffffffff
jne 0x6371af
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
call fcn.00631470
test al, al
je 0x6372bf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x30]
call fcn.0062809c
test eax, eax
jne 0x6372bf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
call fcn.00407bc0
dec ebx
cmp ebx, 0xffffffff
jne 0x63718e
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.0040f26c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x68ad50]
call fcn.0040d980
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.00407e80
test byte [ebp - 5], 1
je 0x637459
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x637467
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
call fcn.00631470
test al, al
jne 0x63744d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
call fcn.006324dc
test al, al
je 0x63744d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x34]
call fcn.00634d2c
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
call fcn.00633e94
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
call fcn.00631470
test al, al
je 0x637404
test ebx, ebx
jle 0x6373f7
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00635aa4
call fcn.006324dc
test al, al
je 0x6373f7
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00635aa4
mov eax, dword [eax + 0x34]
call fcn.00634d2c
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00635aa4
mov eax, dword [eax + 0x34]
pop edx
call fcn.00634d34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006280e4
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.0040f26c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x68ad50]
call fcn.0040d980
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.00407e80
dec ebx
cmp ebx, 0xffffffff
jne 0x637333
jmp 0x637467
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x63759d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x637554
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
cmp dword [eax + 0x34], 0
je 0x637509
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00634d2c
test ax, ax
je 0x6374d3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
dec eax
jne 0x637509
mov eax, esi
call fcn.00634be4
test al, al
jne 0x637509
mov eax, esi
call fcn.00634d3c
test al, al
jne 0x637509
mov eax, esi
call fcn.00634d58
sub al, 2
jb 0x637502
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0062809c
dec eax
jne 0x637509
mov eax, esi
call fcn.00407bc0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
call fcn.00631470
test al, al
je 0x63754a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
mov eax, dword [eax + 0x30]
call fcn.0062809c
test eax, eax
jne 0x63754a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00635aa4
call fcn.00407bc0
dec ebx
cmp ebx, 0xffffffff
jne 0x637496
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.0040f26c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x68ad50]
call fcn.0040d980
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.00407e80
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6375fe
call fcn.004068f0
test eax, eax
jne 0x6375ba
mov ebx, 0x64
jmp 0x6375bc
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.0040f26c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x68ad50]
call fcn.0040d980
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.00407e80
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x637648
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00409848
ret