Function at 0x563344
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 0x563caa
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 0x563c8f
mov eax, dword [ebp - 4]
call fcn.00564794
xor eax, eax
push ebp
push 0x563c7d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00564764
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004334ec
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x58a5b4]
call fcn.00409f04
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.00405128
xor eax, eax
push ebp
push 0x563c60
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.005537a8
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x5634c3
mov eax, dword [ebp - 4]
call fcn.00564f60
cmp dword [eax + 8], 0
jle 0x563433
mov eax, dword [ebp - 4]
call fcn.00564f60
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
mov edi, eax
dec edi
test edi, edi
jl 0x5634c3
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x5634bf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
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.004334ec
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x58a5b4]
call fcn.00409f04
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.00405128
inc ebx
dec edi
jne 0x563448
test byte [ebp - 5], 4
je 0x5636d7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
mov edi, eax
dec edi
test edi, edi
jl 0x5635ad
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
call fcn.0055da08
test al, al
je 0x5635a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x34]
call fcn.005601d4
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.0056332c
test al, al
jne 0x5635a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00560174
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.004334ec
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x58a5b4]
call fcn.00409f04
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.00405128
inc ebx
dec edi
jne 0x5634e6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
mov edi, eax
sub edi, 2
test edi, edi
jl 0x5636e7
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
cmp dword [eax + 0x34], 0
je 0x5636cd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x34]
call fcn.005602dc
add al, 0xfe
sub al, 2
jae 0x5636cd
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0056107c
call fcn.0055da08
test al, al
jne 0x5636cd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
lea edx, [ebp - 0x20]
call fcn.0055d6c8
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0056107c
lea edx, [ebp - 0x30]
call fcn.0055d6c8
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 0x5636cd
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x563684
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005602ec
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.004334ec
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x58a5b4]
call fcn.00409f04
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.00405128
inc ebx
dec edi
jne 0x5635c8
jmp 0x5636e7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x5637ba
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x5637c8
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x563711
dec esi
test esi, esi
jle 0x563741
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0056107c
cmp dword [eax + 0x34], 0
je 0x563741
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0056107c
mov eax, dword [eax + 0x34]
call fcn.005602dc
cmp al, 3
je 0x563710
test esi, esi
jl 0x563766
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0056107c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
pop edx
call fcn.0055f788
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.004334ec
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x58a5b4]
call fcn.00409f04
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.00405128
dec ebx
test ebx, ebx
jne 0x563708
jmp 0x5637c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x56397b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x563932
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x30]
call fcn.005537a8
mov esi, eax
dec esi
cmp esi, 0
jl 0x5638e7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0055c680
mov edx, dword [0x5504ac]
call fcn.004050b8
test al, al
jne 0x5638c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0055c680
mov edx, dword [0x550008]
call fcn.004050b8
test al, al
jne 0x5638c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0055c680
mov edx, dword [0x550cc4]
call fcn.004050b8
test al, al
jne 0x5638c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0055c680
mov edx, dword [0x550e50]
call fcn.004050b8
test al, al
je 0x5638dd
test ebx, ebx
jg 0x5638c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
dec eax
jne 0x5638dd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005537f0
dec esi
cmp esi, 0xffffffff
jne 0x563818
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
call fcn.0055c99c
test al, al
je 0x563928
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x30]
call fcn.005537a8
test eax, eax
jne 0x563928
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
call fcn.00404e9c
dec ebx
cmp ebx, 0xffffffff
jne 0x5637f7
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.004334ec
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x58a5b4]
call fcn.00409f04
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.00405128
test byte [ebp - 5], 1
je 0x563ac2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x563ad0
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
call fcn.0055c99c
test al, al
jne 0x563ab6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
call fcn.0055da08
test al, al
je 0x563ab6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x34]
call fcn.005602b0
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
call fcn.0055f3d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
call fcn.0055c99c
test al, al
je 0x563a6d
test ebx, ebx
jle 0x563a60
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0056107c
call fcn.0055da08
test al, al
je 0x563a60
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0056107c
mov eax, dword [eax + 0x34]
call fcn.005602b0
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0056107c
mov eax, dword [eax + 0x34]
pop edx
call fcn.005602b8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005537f0
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.004334ec
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x58a5b4]
call fcn.00409f04
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.00405128
dec ebx
cmp ebx, 0xffffffff
jne 0x56399c
jmp 0x563ad0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x563c06
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x563bbd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
cmp dword [eax + 0x34], 0
je 0x563b72
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.005602b0
test ax, ax
je 0x563b3c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
dec eax
jne 0x563b72
mov eax, esi
call fcn.00560168
test al, al
jne 0x563b72
mov eax, esi
call fcn.005602c0
test al, al
jne 0x563b72
mov eax, esi
call fcn.005602dc
sub al, 2
jb 0x563b6b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005537a8
dec eax
jne 0x563b72
mov eax, esi
call fcn.00404e9c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
call fcn.0055c99c
test al, al
je 0x563bb3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
mov eax, dword [eax + 0x30]
call fcn.005537a8
test eax, eax
jne 0x563bb3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0056107c
call fcn.00404e9c
dec ebx
cmp ebx, 0xffffffff
jne 0x563aff
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.004334ec
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x58a5b4]
call fcn.00409f04
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.00405128
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x563c67
call fcn.004042e0
test eax, eax
jne 0x563c23
mov ebx, 0x64
jmp 0x563c25
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.004334ec
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x58a5b4]
call fcn.00409f04
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.00405128
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x563cb1
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00406af4
ret