Function at 0x54addc
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 0x54b742
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 0x54b727
mov eax, dword [ebp - 4]
call fcn.0054c1d8
xor eax, eax
push ebp
push 0x54b715
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0054c1a8
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042ea28
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x56a474]
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 0x54b6f8
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.0053c3fc
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x54af5b
mov eax, dword [ebp - 4]
call fcn.0054c9a4
cmp dword [eax + 8], 0
jle 0x54aecb
mov eax, dword [ebp - 4]
call fcn.0054c9a4
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
mov edi, eax
dec edi
test edi, edi
jl 0x54af5b
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x54af57
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
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.0042ea28
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x56a474]
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 0x54aee0
test byte [ebp - 5], 4
je 0x54b16f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
mov edi, eax
dec edi
test edi, edi
jl 0x54b045
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
call fcn.00546618
test al, al
je 0x54b03d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x34]
call fcn.00548d90
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.0054adc4
test al, al
jne 0x54b03d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00548d30
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.0042ea28
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x56a474]
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 0x54af7e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
mov edi, eax
sub edi, 2
test edi, edi
jl 0x54b17f
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
cmp dword [eax + 0x34], 0
je 0x54b165
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x34]
call fcn.00548e98
add al, 0xfe
sub al, 2
jae 0x54b165
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00549bd4
call fcn.00546618
test al, al
jne 0x54b165
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
lea edx, [ebp - 0x20]
call fcn.005462d8
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00549bd4
lea edx, [ebp - 0x30]
call fcn.005462d8
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 0x54b165
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x54b11c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00548ea8
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.0042ea28
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x56a474]
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 0x54b060
jmp 0x54b17f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x54b252
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x54b260
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x54b1a9
dec esi
test esi, esi
jle 0x54b1d9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00549bd4
cmp dword [eax + 0x34], 0
je 0x54b1d9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00549bd4
mov eax, dword [eax + 0x34]
call fcn.00548e98
cmp al, 3
je 0x54b1a8
test esi, esi
jl 0x54b1fe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00549bd4
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
pop edx
call fcn.00548398
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.0042ea28
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x56a474]
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 0x54b1a0
jmp 0x54b260
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x54b413
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x54b3ca
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
mov esi, eax
dec esi
cmp esi, 0
jl 0x54b37f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00545290
mov edx, dword [0x5391b4]
call fcn.00405060
test al, al
jne 0x54b35e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00545290
mov edx, dword [0x538d10]
call fcn.00405060
test al, al
jne 0x54b35e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00545290
mov edx, dword [0x5399cc]
call fcn.00405060
test al, al
jne 0x54b35e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00545290
mov edx, dword [0x539b58]
call fcn.00405060
test al, al
je 0x54b375
test ebx, ebx
jg 0x54b35e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
dec eax
jne 0x54b375
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053c444
dec esi
cmp esi, 0xffffffff
jne 0x54b2b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
call fcn.005455ac
test al, al
je 0x54b3c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
test eax, eax
jne 0x54b3c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
call fcn.00404e4c
dec ebx
cmp ebx, 0xffffffff
jne 0x54b28f
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.0042ea28
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x56a474]
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 0x54b55a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x54b568
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
call fcn.005455ac
test al, al
jne 0x54b54e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
call fcn.00546618
test al, al
je 0x54b54e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x34]
call fcn.00548e6c
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
call fcn.00547fe0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
call fcn.005455ac
test al, al
je 0x54b505
test ebx, ebx
jle 0x54b4f8
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00549bd4
call fcn.00546618
test al, al
je 0x54b4f8
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00549bd4
mov eax, dword [eax + 0x34]
call fcn.00548e6c
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00549bd4
mov eax, dword [eax + 0x34]
pop edx
call fcn.00548e74
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053c444
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.0042ea28
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x56a474]
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 0x54b434
jmp 0x54b568
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x54b69e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x54b655
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
cmp dword [eax + 0x34], 0
je 0x54b60a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00548e6c
test ax, ax
je 0x54b5d4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
dec eax
jne 0x54b60a
mov eax, esi
call fcn.00548d24
test al, al
jne 0x54b60a
mov eax, esi
call fcn.00548e7c
test al, al
jne 0x54b60a
mov eax, esi
call fcn.00548e98
sub al, 2
jb 0x54b603
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
dec eax
jne 0x54b60a
mov eax, esi
call fcn.00404e4c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
call fcn.005455ac
test al, al
je 0x54b64b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
mov eax, dword [eax + 0x30]
call fcn.0053c3fc
test eax, eax
jne 0x54b64b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00549bd4
call fcn.00404e4c
dec ebx
cmp ebx, 0xffffffff
jne 0x54b597
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.0042ea28
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x56a474]
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 0x54b6ff
call fcn.004042c8
test eax, eax
jne 0x54b6bb
mov ebx, 0x64
jmp 0x54b6bd
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.0042ea28
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x56a474]
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 0x54b749
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00406a9c
ret