Function at 0x54c294
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 0x54cbfa
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 0x54cbdf
mov eax, dword [ebp - 4]
call fcn.0054d690
xor eax, eax
push ebp
push 0x54cbcd
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0054d660
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042e8a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x566470]
call fcn.00409cbc
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.004050d0
xor eax, eax
push ebp
push 0x54cbb0
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.0053d8b4
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x54c413
mov eax, dword [ebp - 4]
call fcn.0054de5c
cmp dword [eax + 8], 0
jle 0x54c383
mov eax, dword [ebp - 4]
call fcn.0054de5c
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
mov edi, eax
dec edi
test edi, edi
jl 0x54c413
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x54c40f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
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.0042e8a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x566470]
call fcn.00409cbc
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.004050d0
inc ebx
dec edi
jne 0x54c398
test byte [ebp - 5], 4
je 0x54c627
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
mov edi, eax
dec edi
test edi, edi
jl 0x54c4fd
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
call fcn.00547ad0
test al, al
je 0x54c4f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x34]
call fcn.0054a248
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.0054c27c
test al, al
jne 0x54c4f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0054a1e8
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.0042e8a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x566470]
call fcn.00409cbc
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.004050d0
inc ebx
dec edi
jne 0x54c436
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
mov edi, eax
sub edi, 2
test edi, edi
jl 0x54c637
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
cmp dword [eax + 0x34], 0
je 0x54c61d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x34]
call fcn.0054a350
add al, 0xfe
sub al, 2
jae 0x54c61d
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b08c
call fcn.00547ad0
test al, al
jne 0x54c61d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
lea edx, [ebp - 0x20]
call fcn.00547790
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b08c
lea edx, [ebp - 0x30]
call fcn.00547790
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 0x54c61d
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x54c5d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0054a360
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.0042e8a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x566470]
call fcn.00409cbc
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.004050d0
inc ebx
dec edi
jne 0x54c518
jmp 0x54c637
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x54c70a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x54c718
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x54c661
dec esi
test esi, esi
jle 0x54c691
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0054b08c
cmp dword [eax + 0x34], 0
je 0x54c691
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0054b08c
mov eax, dword [eax + 0x34]
call fcn.0054a350
cmp al, 3
je 0x54c660
test esi, esi
jl 0x54c6b6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0054b08c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
pop edx
call fcn.00549850
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.0042e8a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x566470]
call fcn.00409cbc
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.004050d0
dec ebx
test ebx, ebx
jne 0x54c658
jmp 0x54c718
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x54c8cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x54c882
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
mov esi, eax
dec esi
cmp esi, 0
jl 0x54c837
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00546748
mov edx, dword [0x53a66c]
call fcn.00405060
test al, al
jne 0x54c816
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00546748
mov edx, dword [0x53a1c8]
call fcn.00405060
test al, al
jne 0x54c816
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00546748
mov edx, dword [0x53ae84]
call fcn.00405060
test al, al
jne 0x54c816
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00546748
mov edx, dword [0x53b010]
call fcn.00405060
test al, al
je 0x54c82d
test ebx, ebx
jg 0x54c816
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
dec eax
jne 0x54c82d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053d8fc
dec esi
cmp esi, 0xffffffff
jne 0x54c768
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
call fcn.00546a64
test al, al
je 0x54c878
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
test eax, eax
jne 0x54c878
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
call fcn.00404e4c
dec ebx
cmp ebx, 0xffffffff
jne 0x54c747
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.0042e8a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x566470]
call fcn.00409cbc
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.004050d0
test byte [ebp - 5], 1
je 0x54ca12
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x54ca20
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
call fcn.00546a64
test al, al
jne 0x54ca06
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
call fcn.00547ad0
test al, al
je 0x54ca06
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x34]
call fcn.0054a324
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
call fcn.00549498
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
call fcn.00546a64
test al, al
je 0x54c9bd
test ebx, ebx
jle 0x54c9b0
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b08c
call fcn.00547ad0
test al, al
je 0x54c9b0
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b08c
mov eax, dword [eax + 0x34]
call fcn.0054a324
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b08c
mov eax, dword [eax + 0x34]
pop edx
call fcn.0054a32c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053d8fc
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.0042e8a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x566470]
call fcn.00409cbc
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.004050d0
dec ebx
cmp ebx, 0xffffffff
jne 0x54c8ec
jmp 0x54ca20
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x54cb56
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x54cb0d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
cmp dword [eax + 0x34], 0
je 0x54cac2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.0054a324
test ax, ax
je 0x54ca8c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
dec eax
jne 0x54cac2
mov eax, esi
call fcn.0054a1dc
test al, al
jne 0x54cac2
mov eax, esi
call fcn.0054a334
test al, al
jne 0x54cac2
mov eax, esi
call fcn.0054a350
sub al, 2
jb 0x54cabb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
dec eax
jne 0x54cac2
mov eax, esi
call fcn.00404e4c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
call fcn.00546a64
test al, al
je 0x54cb03
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
mov eax, dword [eax + 0x30]
call fcn.0053d8b4
test eax, eax
jne 0x54cb03
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b08c
call fcn.00404e4c
dec ebx
cmp ebx, 0xffffffff
jne 0x54ca4f
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.0042e8a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x566470]
call fcn.00409cbc
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.004050d0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x54cbb7
call fcn.004042c8
test eax, eax
jne 0x54cb73
mov ebx, 0x64
jmp 0x54cb75
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.0042e8a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x566470]
call fcn.00409cbc
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.004050d0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x54cc01
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00406a9c
ret