Function at 0x5986bc
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 0x599022
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 0x599007
mov eax, dword [ebp - 4]
call fcn.00599b0c
xor eax, eax
push ebp
push 0x598ff5
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00599adc
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00484970
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x6ae1e8]
call fcn.004ddbd8
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.004d85a8
xor eax, eax
push ebp
push 0x598fd8
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.00587f00
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x59883b
mov eax, dword [ebp - 4]
call fcn.0059a2d8
cmp dword [eax + 8], 0
jle 0x5987ab
mov eax, dword [ebp - 4]
call fcn.0059a2d8
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
mov edi, eax
dec edi
test edi, edi
jl 0x59883b
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x598837
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
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.00484970
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x6ae1e8]
call fcn.004ddbd8
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.004d85a8
inc ebx
dec edi
jne 0x5987c0
test byte [ebp - 5], 4
je 0x598a4f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
mov edi, eax
dec edi
test edi, edi
jl 0x598925
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
call fcn.005927d0
test al, al
je 0x59891d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x34]
call fcn.00594f9c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.005986a4
test al, al
jne 0x59891d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00594f3c
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.00484970
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x6ae1e8]
call fcn.004ddbd8
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.004d85a8
inc ebx
dec edi
jne 0x59885e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
mov edi, eax
sub edi, 2
test edi, edi
jl 0x598a5f
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
cmp dword [eax + 0x34], 0
je 0x598a45
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x34]
call fcn.005950a4
add al, 0xfe
sub al, 2
jae 0x598a45
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00595e4c
call fcn.005927d0
test al, al
jne 0x598a45
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
lea edx, [ebp - 0x20]
call fcn.00592490
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00595e4c
lea edx, [ebp - 0x30]
call fcn.00592490
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.USER32.DLL_IntersectRect
test eax, eax
je 0x598a45
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.USER32.DLL_EqualRect
test eax, eax
je 0x5989fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005950b4
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.00484970
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x6ae1e8]
call fcn.004ddbd8
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.004d85a8
inc ebx
dec edi
jne 0x598940
jmp 0x598a5f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x598b32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x598b40
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x598a89
dec esi
test esi, esi
jle 0x598ab9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00595e4c
cmp dword [eax + 0x34], 0
je 0x598ab9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00595e4c
mov eax, dword [eax + 0x34]
call fcn.005950a4
cmp al, 3
je 0x598a88
test esi, esi
jl 0x598ade
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00595e4c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
pop edx
call fcn.00594550
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.00484970
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x6ae1e8]
call fcn.004ddbd8
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.004d85a8
dec ebx
test ebx, ebx
jne 0x598a80
jmp 0x598b40
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x598cf3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x598caa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x30]
call fcn.00587f00
mov esi, eax
dec esi
cmp esi, 0
jl 0x598c5f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00591448
mov edx, dword [0x584c20]
call fcn.004d8538
test al, al
jne 0x598c3e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00591448
mov edx, dword [0x58477c]
call fcn.004d8538
test al, al
jne 0x598c3e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00591448
mov edx, dword [0x585438]
call fcn.004d8538
test al, al
jne 0x598c3e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00591448
mov edx, dword [0x5855c4]
call fcn.004d8538
test al, al
je 0x598c55
test ebx, ebx
jg 0x598c3e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
dec eax
jne 0x598c55
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00587f48
dec esi
cmp esi, 0xffffffff
jne 0x598b90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
call fcn.00591764
test al, al
je 0x598ca0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x30]
call fcn.00587f00
test eax, eax
jne 0x598ca0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
call fcn.004d8320
dec ebx
cmp ebx, 0xffffffff
jne 0x598b6f
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.00484970
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x6ae1e8]
call fcn.004ddbd8
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.004d85a8
test byte [ebp - 5], 1
je 0x598e3a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x598e48
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
call fcn.00591764
test al, al
jne 0x598e2e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
call fcn.005927d0
test al, al
je 0x598e2e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x34]
call fcn.00595078
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
call fcn.00594198
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
call fcn.00591764
test al, al
je 0x598de5
test ebx, ebx
jle 0x598dd8
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00595e4c
call fcn.005927d0
test al, al
je 0x598dd8
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00595e4c
mov eax, dword [eax + 0x34]
call fcn.00595078
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00595e4c
mov eax, dword [eax + 0x34]
pop edx
call fcn.00595080
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00587f48
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.00484970
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x6ae1e8]
call fcn.004ddbd8
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.004d85a8
dec ebx
cmp ebx, 0xffffffff
jne 0x598d14
jmp 0x598e48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x598f7e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x598f35
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
cmp dword [eax + 0x34], 0
je 0x598eea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00595078
test ax, ax
je 0x598eb4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
dec eax
jne 0x598eea
mov eax, esi
call fcn.00594f30
test al, al
jne 0x598eea
mov eax, esi
call fcn.00595088
test al, al
jne 0x598eea
mov eax, esi
call fcn.005950a4
sub al, 2
jb 0x598ee3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00587f00
dec eax
jne 0x598eea
mov eax, esi
call fcn.004d8320
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
call fcn.00591764
test al, al
je 0x598f2b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
mov eax, dword [eax + 0x30]
call fcn.00587f00
test eax, eax
jne 0x598f2b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00595e4c
call fcn.004d8320
dec ebx
cmp ebx, 0xffffffff
jne 0x598e77
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.00484970
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x6ae1e8]
call fcn.004ddbd8
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.004d85a8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x598fdf
call fcn.004d77dc
test eax, eax
jne 0x598f9b
mov ebx, 0x64
jmp 0x598f9d
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.00484970
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x6ae1e8]
call fcn.004ddbd8
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.004d85a8
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x599029
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.004d9df8
ret