Function at 0x5a91d0
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 0x5a9b36
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 0x5a9b1b
mov eax, dword [ebp - 4]
call fcn.005aa530
xor eax, eax
push ebp
push 0x5a9b09
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.005aa500
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0048c1d0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x733f18]
call fcn.004096b8
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.00404948
xor eax, eax
push ebp
push 0x5a9aec
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.0059d3b4
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x5a934f
mov eax, dword [ebp - 4]
call fcn.005aad18
cmp dword [eax + 8], 0
jle 0x5a92bf
mov eax, dword [ebp - 4]
call fcn.005aad18
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
mov edi, eax
dec edi
test edi, edi
jl 0x5a934f
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x5a934b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
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.0048c1d0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x733f18]
call fcn.004096b8
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.00404948
inc ebx
dec edi
jne 0x5a92d4
test byte [ebp - 5], 4
je 0x5a9563
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
mov edi, eax
dec edi
test edi, edi
jl 0x5a9439
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
call fcn.005a50a0
test al, al
je 0x5a9431
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x34]
call fcn.005a763c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.005a91b8
test al, al
jne 0x5a9431
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005a7618
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.0048c1d0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x733f18]
call fcn.004096b8
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.00404948
inc ebx
dec edi
jne 0x5a9372
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
mov edi, eax
sub edi, 2
test edi, edi
jl 0x5a9573
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
cmp dword [eax + 0x34], 0
je 0x5a9559
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x34]
call fcn.005a7734
add al, 0xfe
sub al, 2
jae 0x5a9559
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a81fc
call fcn.005a50a0
test al, al
jne 0x5a9559
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
lea edx, [ebp - 0x20]
call fcn.005a4dd0
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a81fc
lea edx, [ebp - 0x30]
call fcn.005a4dd0
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 0x5a9559
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x5a9510
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005a7744
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.0048c1d0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x733f18]
call fcn.004096b8
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.00404948
inc ebx
dec edi
jne 0x5a9454
jmp 0x5a9573
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x5a9646
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x5a9654
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x5a959d
dec esi
test esi, esi
jle 0x5a95cd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005a81fc
cmp dword [eax + 0x34], 0
je 0x5a95cd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005a81fc
mov eax, dword [eax + 0x34]
call fcn.005a7734
cmp al, 3
je 0x5a959c
test esi, esi
jl 0x5a95f2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005a81fc
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
pop edx
call fcn.005a6dd4
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.0048c1d0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x733f18]
call fcn.004096b8
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.00404948
dec ebx
test ebx, ebx
jne 0x5a9594
jmp 0x5a9654
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5a9807
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5a97be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
mov esi, eax
dec esi
cmp esi, 0
jl 0x5a9773
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005a3e00
mov edx, dword [0x59c5b4]
call fcn.004048d8
test al, al
jne 0x5a9752
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005a3e00
mov edx, dword [0x59c4f4]
call fcn.004048d8
test al, al
jne 0x5a9752
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005a3e00
mov edx, dword [0x59c7b8]
call fcn.004048d8
test al, al
jne 0x5a9752
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005a3e00
mov edx, dword [0x59c888]
call fcn.004048d8
test al, al
je 0x5a9769
test ebx, ebx
jg 0x5a9752
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
dec eax
jne 0x5a9769
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0059d3fc
dec esi
cmp esi, 0xffffffff
jne 0x5a96a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
call fcn.005a4124
test al, al
je 0x5a97b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
test eax, eax
jne 0x5a97b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
call fcn.00404700
dec ebx
cmp ebx, 0xffffffff
jne 0x5a9683
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.0048c1d0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x733f18]
call fcn.004096b8
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.00404948
test byte [ebp - 5], 1
je 0x5a994e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5a995c
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
call fcn.005a4124
test al, al
jne 0x5a9942
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
call fcn.005a50a0
test al, al
je 0x5a9942
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x34]
call fcn.005a7718
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
call fcn.005a6a1c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
call fcn.005a4124
test al, al
je 0x5a98f9
test ebx, ebx
jle 0x5a98ec
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a81fc
call fcn.005a50a0
test al, al
je 0x5a98ec
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a81fc
mov eax, dword [eax + 0x34]
call fcn.005a7718
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005a81fc
mov eax, dword [eax + 0x34]
pop edx
call fcn.005a7720
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0059d3fc
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.0048c1d0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x733f18]
call fcn.004096b8
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.00404948
dec ebx
cmp ebx, 0xffffffff
jne 0x5a9828
jmp 0x5a995c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5a9a92
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5a9a49
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
cmp dword [eax + 0x34], 0
je 0x5a99fe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.005a7718
test ax, ax
je 0x5a99c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
dec eax
jne 0x5a99fe
mov eax, esi
call fcn.005a760c
test al, al
jne 0x5a99fe
mov eax, esi
call fcn.005a7728
test al, al
jne 0x5a99fe
mov eax, esi
call fcn.005a7734
sub al, 2
jb 0x5a99f7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
dec eax
jne 0x5a99fe
mov eax, esi
call fcn.00404700
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
call fcn.005a4124
test al, al
je 0x5a9a3f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
mov eax, dword [eax + 0x30]
call fcn.0059d3b4
test eax, eax
jne 0x5a9a3f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005a81fc
call fcn.00404700
dec ebx
cmp ebx, 0xffffffff
jne 0x5a998b
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.0048c1d0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x733f18]
call fcn.004096b8
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.00404948
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5a9af3
call fcn.00403308
test eax, eax
jne 0x5a9aaf
mov ebx, 0x64
jmp 0x5a9ab1
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.0048c1d0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x733f18]
call fcn.004096b8
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.00404948
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5a9b3d
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00406dd4
ret