Function at 0x5f2058
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 0x5f29be
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 0x5f29a3
mov eax, dword [ebp - 4]
call fcn.005f34a8
xor eax, eax
push ebp
push 0x5f2991
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.005f3478
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0045f518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x7e91b4]
call fcn.004c54a4
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.004bfa18
xor eax, eax
push ebp
push 0x5f2974
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.005e189c
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x5f21d7
mov eax, dword [ebp - 4]
call fcn.005f3c74
cmp dword [eax + 8], 0
jle 0x5f2147
mov eax, dword [ebp - 4]
call fcn.005f3c74
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
mov edi, eax
dec edi
test edi, edi
jl 0x5f21d7
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x5f21d3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
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.0045f518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x7e91b4]
call fcn.004c54a4
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.004bfa18
inc ebx
dec edi
jne 0x5f215c
test byte [ebp - 5], 4
je 0x5f23eb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
mov edi, eax
dec edi
test edi, edi
jl 0x5f22c1
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
call fcn.005ec16c
test al, al
je 0x5f22b9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x34]
call fcn.005ee938
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.005f2040
test al, al
jne 0x5f22b9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005ee8d8
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.0045f518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x7e91b4]
call fcn.004c54a4
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.004bfa18
inc ebx
dec edi
jne 0x5f21fa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
mov edi, eax
sub edi, 2
test edi, edi
jl 0x5f23fb
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
cmp dword [eax + 0x34], 0
je 0x5f23e1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x34]
call fcn.005eea40
add al, 0xfe
sub al, 2
jae 0x5f23e1
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005ef7e8
call fcn.005ec16c
test al, al
jne 0x5f23e1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
lea edx, [ebp - 0x20]
call fcn.005ebe2c
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005ef7e8
lea edx, [ebp - 0x30]
call fcn.005ebe2c
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 0x5f23e1
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.USER32.DLL_EqualRect
test eax, eax
je 0x5f2398
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005eea50
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.0045f518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x7e91b4]
call fcn.004c54a4
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.004bfa18
inc ebx
dec edi
jne 0x5f22dc
jmp 0x5f23fb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x5f24ce
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x5f24dc
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x5f2425
dec esi
test esi, esi
jle 0x5f2455
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005ef7e8
cmp dword [eax + 0x34], 0
je 0x5f2455
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005ef7e8
mov eax, dword [eax + 0x34]
call fcn.005eea40
cmp al, 3
je 0x5f2424
test esi, esi
jl 0x5f247a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005ef7e8
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
pop edx
call fcn.005edeec
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.0045f518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x7e91b4]
call fcn.004c54a4
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.004bfa18
dec ebx
test ebx, ebx
jne 0x5f241c
jmp 0x5f24dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5f268f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5f2646
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x30]
call fcn.005e189c
mov esi, eax
dec esi
cmp esi, 0
jl 0x5f25fb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005eade4
mov edx, dword [0x5de5bc]
call fcn.004bf9a8
test al, al
jne 0x5f25da
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005eade4
mov edx, dword [0x5de118]
call fcn.004bf9a8
test al, al
jne 0x5f25da
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005eade4
mov edx, dword [0x5dedd4]
call fcn.004bf9a8
test al, al
jne 0x5f25da
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005eade4
mov edx, dword [0x5def60]
call fcn.004bf9a8
test al, al
je 0x5f25f1
test ebx, ebx
jg 0x5f25da
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
dec eax
jne 0x5f25f1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005e18e4
dec esi
cmp esi, 0xffffffff
jne 0x5f252c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
call fcn.005eb100
test al, al
je 0x5f263c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x30]
call fcn.005e189c
test eax, eax
jne 0x5f263c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
call fcn.004bf790
dec ebx
cmp ebx, 0xffffffff
jne 0x5f250b
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.0045f518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x7e91b4]
call fcn.004c54a4
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.004bfa18
test byte [ebp - 5], 1
je 0x5f27d6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5f27e4
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
call fcn.005eb100
test al, al
jne 0x5f27ca
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
call fcn.005ec16c
test al, al
je 0x5f27ca
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x34]
call fcn.005eea14
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
call fcn.005edb34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
call fcn.005eb100
test al, al
je 0x5f2781
test ebx, ebx
jle 0x5f2774
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005ef7e8
call fcn.005ec16c
test al, al
je 0x5f2774
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005ef7e8
mov eax, dword [eax + 0x34]
call fcn.005eea14
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005ef7e8
mov eax, dword [eax + 0x34]
pop edx
call fcn.005eea1c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005e18e4
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.0045f518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x7e91b4]
call fcn.004c54a4
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.004bfa18
dec ebx
cmp ebx, 0xffffffff
jne 0x5f26b0
jmp 0x5f27e4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5f291a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5f28d1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
cmp dword [eax + 0x34], 0
je 0x5f2886
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.005eea14
test ax, ax
je 0x5f2850
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
dec eax
jne 0x5f2886
mov eax, esi
call fcn.005ee8cc
test al, al
jne 0x5f2886
mov eax, esi
call fcn.005eea24
test al, al
jne 0x5f2886
mov eax, esi
call fcn.005eea40
sub al, 2
jb 0x5f287f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005e189c
dec eax
jne 0x5f2886
mov eax, esi
call fcn.004bf790
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
call fcn.005eb100
test al, al
je 0x5f28c7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
mov eax, dword [eax + 0x30]
call fcn.005e189c
test eax, eax
jne 0x5f28c7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005ef7e8
call fcn.004bf790
dec ebx
cmp ebx, 0xffffffff
jne 0x5f2813
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.0045f518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x7e91b4]
call fcn.004c54a4
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.004bfa18
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5f297b
call fcn.004be44c
test eax, eax
jne 0x5f2937
mov ebx, 0x64
jmp 0x5f2939
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.0045f518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x7e91b4]
call fcn.004c54a4
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.004bfa18
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5f29c5
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.004c12c4
ret