Function at 0x557540
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 0x557ea6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
jne 0x557e8b
mov eax, dword [ebp - 4]
call fcn.00558890
xor eax, eax
push ebp
push 0x557e79
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00558868
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00422ca4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x65a844]
call fcn.00407d84
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.0040494c
xor eax, eax
push ebp
push 0x557e5c
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.0054b898
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x5576bf
mov eax, dword [ebp - 4]
call fcn.00559078
cmp dword [eax + 8], 0
jle 0x55762f
mov eax, dword [ebp - 4]
call fcn.00559078
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
mov edi, eax
dec edi
test edi, edi
jl 0x5576bf
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x5576bb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
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.00422ca4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x65a844]
call fcn.00407d84
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.0040494c
inc ebx
dec edi
jne 0x557644
test byte [ebp - 5], 4
je 0x5578d3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
mov edi, eax
dec edi
test edi, edi
jl 0x5577a9
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
call fcn.00553468
test al, al
je 0x5577a1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x34]
call fcn.005559e0
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00557528
test al, al
jne 0x5577a1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005559bc
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.00422ca4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x65a844]
call fcn.00407d84
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.0040494c
inc ebx
dec edi
jne 0x5576e2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
mov edi, eax
sub edi, 2
test edi, edi
jl 0x5578e3
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
cmp dword [eax + 0x34], 0
je 0x5578c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x34]
call fcn.00555ad8
add al, 0xfe
sub al, 2
jae 0x5578c9
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00556594
call fcn.00553468
test al, al
jne 0x5578c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
lea edx, [ebp - 0x20]
call fcn.00553198
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00556594
lea edx, [ebp - 0x30]
call fcn.00553198
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 0x5578c9
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x557880
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00555ae8
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.00422ca4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x65a844]
call fcn.00407d84
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.0040494c
inc ebx
dec edi
jne 0x5577c4
jmp 0x5578e3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x5579b6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x5579c4
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x55790d
dec esi
test esi, esi
jle 0x55793d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00556594
cmp dword [eax + 0x34], 0
je 0x55793d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00556594
mov eax, dword [eax + 0x34]
call fcn.00555ad8
cmp al, 3
je 0x55790c
test esi, esi
jl 0x557962
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00556594
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
pop edx
call fcn.0055518c
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.00422ca4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x65a844]
call fcn.00407d84
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.0040494c
dec ebx
test ebx, ebx
jne 0x557904
jmp 0x5579c4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x557b77
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x557b2e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x30]
call fcn.0054b898
mov esi, eax
dec esi
cmp esi, 0
jl 0x557ae3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005521cc
mov edx, dword [0x54aba8]
call fcn.004048dc
test al, al
jne 0x557ac2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005521cc
mov edx, dword [0x54aaf4]
call fcn.004048dc
test al, al
jne 0x557ac2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005521cc
mov edx, dword [0x54ad88]
call fcn.004048dc
test al, al
jne 0x557ac2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005521cc
mov edx, dword [0x54ae4c]
call fcn.004048dc
test al, al
je 0x557ad9
test ebx, ebx
jg 0x557ac2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
dec eax
jne 0x557ad9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0054b8e0
dec esi
cmp esi, 0xffffffff
jne 0x557a14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
call fcn.005524ec
test al, al
je 0x557b24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x30]
call fcn.0054b898
test eax, eax
jne 0x557b24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
call fcn.00404748
dec ebx
cmp ebx, 0xffffffff
jne 0x5579f3
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.00422ca4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x65a844]
call fcn.00407d84
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.0040494c
test byte [ebp - 5], 1
je 0x557cbe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x557ccc
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
call fcn.005524ec
test al, al
jne 0x557cb2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
call fcn.00553468
test al, al
je 0x557cb2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x34]
call fcn.00555abc
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
call fcn.00554dd4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
call fcn.005524ec
test al, al
je 0x557c69
test ebx, ebx
jle 0x557c5c
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00556594
call fcn.00553468
test al, al
je 0x557c5c
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00556594
mov eax, dword [eax + 0x34]
call fcn.00555abc
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00556594
mov eax, dword [eax + 0x34]
pop edx
call fcn.00555ac4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0054b8e0
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.00422ca4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x65a844]
call fcn.00407d84
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.0040494c
dec ebx
cmp ebx, 0xffffffff
jne 0x557b98
jmp 0x557ccc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x557e02
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x557db9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
cmp dword [eax + 0x34], 0
je 0x557d6e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00555abc
test ax, ax
je 0x557d38
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
dec eax
jne 0x557d6e
mov eax, esi
call fcn.005559b0
test al, al
jne 0x557d6e
mov eax, esi
call fcn.00555acc
test al, al
jne 0x557d6e
mov eax, esi
call fcn.00555ad8
sub al, 2
jb 0x557d67
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0054b898
dec eax
jne 0x557d6e
mov eax, esi
call fcn.00404748
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
call fcn.005524ec
test al, al
je 0x557daf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
mov eax, dword [eax + 0x30]
call fcn.0054b898
test eax, eax
jne 0x557daf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00556594
call fcn.00404748
dec ebx
cmp ebx, 0xffffffff
jne 0x557cfb
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.00422ca4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x65a844]
call fcn.00407d84
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.0040494c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x557e63
call fcn.00403090
test eax, eax
jne 0x557e1f
mov ebx, 0x64
jmp 0x557e21
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.00422ca4
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x65a844]
call fcn.00407d84
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.0040494c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x557ead
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.004056d0
ret