Function at 0x56a4ec
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 0x56ae52
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 0x56ae37
mov eax, dword [ebp - 4]
call fcn.0056b93c
xor eax, eax
push ebp
push 0x56ae25
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0056b90c
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00444584
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x642640]
call fcn.0040a88c
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.004053b8
xor eax, eax
push ebp
push 0x56ae08
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.0055a6a0
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x56a66b
mov eax, dword [ebp - 4]
call fcn.0056c108
cmp dword [eax + 8], 0
jle 0x56a5db
mov eax, dword [ebp - 4]
call fcn.0056c108
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
mov edi, eax
dec edi
test edi, edi
jl 0x56a66b
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x56a667
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
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.00444584
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x642640]
call fcn.0040a88c
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.004053b8
inc ebx
dec edi
jne 0x56a5f0
test byte [ebp - 5], 4
je 0x56a87f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
mov edi, eax
dec edi
test edi, edi
jl 0x56a755
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
call fcn.00564b7c
test al, al
je 0x56a74d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x34]
call fcn.00567350
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.0056a4d4
test al, al
jne 0x56a74d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005672f0
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.00444584
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x642640]
call fcn.0040a88c
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.004053b8
inc ebx
dec edi
jne 0x56a68e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
mov edi, eax
sub edi, 2
test edi, edi
jl 0x56a88f
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
cmp dword [eax + 0x34], 0
je 0x56a875
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x34]
call fcn.00567458
add al, 0xfe
sub al, 2
jae 0x56a875
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00568200
call fcn.00564b7c
test al, al
jne 0x56a875
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
lea edx, [ebp - 0x20]
call fcn.00564784
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00568200
lea edx, [ebp - 0x30]
call fcn.00564784
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 0x56a875
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x56a82c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00567468
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.00444584
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x642640]
call fcn.0040a88c
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.004053b8
inc ebx
dec edi
jne 0x56a770
jmp 0x56a88f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x56a962
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x56a970
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x56a8b9
dec esi
test esi, esi
jle 0x56a8e9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00568200
cmp dword [eax + 0x34], 0
je 0x56a8e9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00568200
mov eax, dword [eax + 0x34]
call fcn.00567458
cmp al, 3
je 0x56a8b8
test esi, esi
jl 0x56a90e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00568200
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
pop edx
call fcn.005668f0
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.00444584
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x642640]
call fcn.0040a88c
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.004053b8
dec ebx
test ebx, ebx
jne 0x56a8b0
jmp 0x56a970
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x56ab23
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x56aada
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
mov esi, eax
dec esi
cmp esi, 0
jl 0x56aa8f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00563734
mov edx, dword [0x557200]
call fcn.00405318
test al, al
jne 0x56aa6e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00563734
mov edx, dword [0x556d48]
call fcn.00405318
test al, al
jne 0x56aa6e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00563734
mov edx, dword [0x557a44]
call fcn.00405318
test al, al
jne 0x56aa6e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00563734
mov edx, dword [0x557be4]
call fcn.00405318
test al, al
je 0x56aa85
test ebx, ebx
jg 0x56aa6e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
dec eax
jne 0x56aa85
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0055a6e8
dec esi
cmp esi, 0xffffffff
jne 0x56a9c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
call fcn.00563a58
test al, al
je 0x56aad0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
test eax, eax
jne 0x56aad0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
call fcn.0040505c
dec ebx
cmp ebx, 0xffffffff
jne 0x56a99f
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.00444584
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x642640]
call fcn.0040a88c
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.004053b8
test byte [ebp - 5], 1
je 0x56ac6a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x56ac78
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
call fcn.00563a58
test al, al
jne 0x56ac5e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
call fcn.00564b7c
test al, al
je 0x56ac5e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x34]
call fcn.0056742c
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
call fcn.0056653c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
call fcn.00563a58
test al, al
je 0x56ac15
test ebx, ebx
jle 0x56ac08
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00568200
call fcn.00564b7c
test al, al
je 0x56ac08
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00568200
mov eax, dword [eax + 0x34]
call fcn.0056742c
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00568200
mov eax, dword [eax + 0x34]
pop edx
call fcn.00567434
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0055a6e8
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.00444584
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x642640]
call fcn.0040a88c
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.004053b8
dec ebx
cmp ebx, 0xffffffff
jne 0x56ab44
jmp 0x56ac78
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x56adae
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x56ad65
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
cmp dword [eax + 0x34], 0
je 0x56ad1a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.0056742c
test ax, ax
je 0x56ace4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
dec eax
jne 0x56ad1a
mov eax, esi
call fcn.005672e4
test al, al
jne 0x56ad1a
mov eax, esi
call fcn.0056743c
test al, al
jne 0x56ad1a
mov eax, esi
call fcn.00567458
sub al, 2
jb 0x56ad13
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
dec eax
jne 0x56ad1a
mov eax, esi
call fcn.0040505c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
call fcn.00563a58
test al, al
je 0x56ad5b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
mov eax, dword [eax + 0x30]
call fcn.0055a6a0
test eax, eax
jne 0x56ad5b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00568200
call fcn.0040505c
dec ebx
cmp ebx, 0xffffffff
jne 0x56aca7
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.00444584
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x642640]
call fcn.0040a88c
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.004053b8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56ae0f
call fcn.00404674
test eax, eax
jne 0x56adcb
mov ebx, 0x64
jmp 0x56adcd
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.00444584
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x642640]
call fcn.0040a88c
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.004053b8
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56ae59
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00406d08
ret