Function at 0x5b7f94
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 0x5b88fa
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 0x5b88df
mov eax, dword [ebp - 4]
call fcn.005b93e4
xor eax, eax
push ebp
push 0x5b88cd
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.005b93b4
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00433f9c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x62b7a4]
call fcn.0040a830
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.00405540
xor eax, eax
push ebp
push 0x5b88b0
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.005a83f8
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x5b8113
mov eax, dword [ebp - 4]
call fcn.005b9bb0
cmp dword [eax + 8], 0
jle 0x5b8083
mov eax, dword [ebp - 4]
call fcn.005b9bb0
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
mov edi, eax
dec edi
test edi, edi
jl 0x5b8113
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x5b810f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
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.00433f9c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x62b7a4]
call fcn.0040a830
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.00405540
inc ebx
dec edi
jne 0x5b8098
test byte [ebp - 5], 4
je 0x5b8327
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
mov edi, eax
dec edi
test edi, edi
jl 0x5b81fd
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
call fcn.005b2658
test al, al
je 0x5b81f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x34]
call fcn.005b4e24
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.005b7f7c
test al, al
jne 0x5b81f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005b4dc4
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.00433f9c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x62b7a4]
call fcn.0040a830
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.00405540
inc ebx
dec edi
jne 0x5b8136
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
mov edi, eax
sub edi, 2
test edi, edi
jl 0x5b8337
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
cmp dword [eax + 0x34], 0
je 0x5b831d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x34]
call fcn.005b4f2c
add al, 0xfe
sub al, 2
jae 0x5b831d
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b5ccc
call fcn.005b2658
test al, al
jne 0x5b831d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
lea edx, [ebp - 0x20]
call fcn.005b2318
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b5ccc
lea edx, [ebp - 0x30]
call fcn.005b2318
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 0x5b831d
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x5b82d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005b4f3c
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.00433f9c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x62b7a4]
call fcn.0040a830
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.00405540
inc ebx
dec edi
jne 0x5b8218
jmp 0x5b8337
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x5b840a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x5b8418
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x5b8361
dec esi
test esi, esi
jle 0x5b8391
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005b5ccc
cmp dword [eax + 0x34], 0
je 0x5b8391
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005b5ccc
mov eax, dword [eax + 0x34]
call fcn.005b4f2c
cmp al, 3
je 0x5b8360
test esi, esi
jl 0x5b83b6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005b5ccc
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
pop edx
call fcn.005b43d8
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.00433f9c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x62b7a4]
call fcn.0040a830
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.00405540
dec ebx
test ebx, ebx
jne 0x5b8358
jmp 0x5b8418
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5b85cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5b8582
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x30]
call fcn.005a83f8
mov esi, eax
dec esi
cmp esi, 0
jl 0x5b8537
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005b12d0
mov edx, dword [0x5a50fc]
call fcn.004054d0
test al, al
jne 0x5b8516
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005b12d0
mov edx, dword [0x5a4c58]
call fcn.004054d0
test al, al
jne 0x5b8516
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005b12d0
mov edx, dword [0x5a5914]
call fcn.004054d0
test al, al
jne 0x5b8516
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005b12d0
mov edx, dword [0x5a5aa0]
call fcn.004054d0
test al, al
je 0x5b852d
test ebx, ebx
jg 0x5b8516
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
dec eax
jne 0x5b852d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005a8440
dec esi
cmp esi, 0xffffffff
jne 0x5b8468
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
call fcn.005b15ec
test al, al
je 0x5b8578
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x30]
call fcn.005a83f8
test eax, eax
jne 0x5b8578
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
call fcn.004052b4
dec ebx
cmp ebx, 0xffffffff
jne 0x5b8447
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.00433f9c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x62b7a4]
call fcn.0040a830
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.00405540
test byte [ebp - 5], 1
je 0x5b8712
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5b8720
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
call fcn.005b15ec
test al, al
jne 0x5b8706
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
call fcn.005b2658
test al, al
je 0x5b8706
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x34]
call fcn.005b4f00
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
call fcn.005b4020
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
call fcn.005b15ec
test al, al
je 0x5b86bd
test ebx, ebx
jle 0x5b86b0
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b5ccc
call fcn.005b2658
test al, al
je 0x5b86b0
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b5ccc
mov eax, dword [eax + 0x34]
call fcn.005b4f00
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b5ccc
mov eax, dword [eax + 0x34]
pop edx
call fcn.005b4f08
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a8440
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.00433f9c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x62b7a4]
call fcn.0040a830
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.00405540
dec ebx
cmp ebx, 0xffffffff
jne 0x5b85ec
jmp 0x5b8720
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5b8856
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5b880d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
cmp dword [eax + 0x34], 0
je 0x5b87c2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.005b4f00
test ax, ax
je 0x5b878c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
dec eax
jne 0x5b87c2
mov eax, esi
call fcn.005b4db8
test al, al
jne 0x5b87c2
mov eax, esi
call fcn.005b4f10
test al, al
jne 0x5b87c2
mov eax, esi
call fcn.005b4f2c
sub al, 2
jb 0x5b87bb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a83f8
dec eax
jne 0x5b87c2
mov eax, esi
call fcn.004052b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
call fcn.005b15ec
test al, al
je 0x5b8803
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
mov eax, dword [eax + 0x30]
call fcn.005a83f8
test eax, eax
jne 0x5b8803
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5ccc
call fcn.004052b4
dec ebx
cmp ebx, 0xffffffff
jne 0x5b874f
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.00433f9c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x62b7a4]
call fcn.0040a830
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.00405540
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5b88b7
call fcn.004042b8
test eax, eax
jne 0x5b8873
mov ebx, 0x64
jmp 0x5b8875
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.00433f9c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x62b7a4]
call fcn.0040a830
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.00405540
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5b8901
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.004072e8
ret