Function at 0x518ea8
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 0x51980e
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 0x5197f3
mov eax, dword [ebp - 4]
call fcn.0051a2f8
xor eax, eax
push ebp
push 0x5197e1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0051a2c8
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042bebc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x57d7fc]
call fcn.00484468
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.0047f1a8
xor eax, eax
push ebp
push 0x5197c4
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.005086ec
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x519027
mov eax, dword [ebp - 4]
call fcn.0051aac4
cmp dword [eax + 8], 0
jle 0x518f97
mov eax, dword [ebp - 4]
call fcn.0051aac4
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
mov edi, eax
dec edi
test edi, edi
jl 0x519027
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x519023
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
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.0042bebc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x57d7fc]
call fcn.00484468
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.0047f1a8
inc ebx
dec edi
jne 0x518fac
test byte [ebp - 5], 4
je 0x51923b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
mov edi, eax
dec edi
test edi, edi
jl 0x519111
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
call fcn.00512fbc
test al, al
je 0x519109
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x34]
call fcn.00515788
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00518e90
test al, al
jne 0x519109
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00515728
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.0042bebc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x57d7fc]
call fcn.00484468
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.0047f1a8
inc ebx
dec edi
jne 0x51904a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
mov edi, eax
sub edi, 2
test edi, edi
jl 0x51924b
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
cmp dword [eax + 0x34], 0
je 0x519231
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x34]
call fcn.00515890
add al, 0xfe
sub al, 2
jae 0x519231
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00516638
call fcn.00512fbc
test al, al
jne 0x519231
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
lea edx, [ebp - 0x20]
call fcn.00512c7c
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00516638
lea edx, [ebp - 0x30]
call fcn.00512c7c
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 0x519231
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.USER32.DLL_EqualRect
test eax, eax
je 0x5191e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005158a0
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.0042bebc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x57d7fc]
call fcn.00484468
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.0047f1a8
inc ebx
dec edi
jne 0x51912c
jmp 0x51924b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x51931e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x51932c
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x519275
dec esi
test esi, esi
jle 0x5192a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00516638
cmp dword [eax + 0x34], 0
je 0x5192a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00516638
mov eax, dword [eax + 0x34]
call fcn.00515890
cmp al, 3
je 0x519274
test esi, esi
jl 0x5192ca
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00516638
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
pop edx
call fcn.00514d3c
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.0042bebc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x57d7fc]
call fcn.00484468
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.0047f1a8
dec ebx
test ebx, ebx
jne 0x51926c
jmp 0x51932c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5194df
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x519496
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x30]
call fcn.005086ec
mov esi, eax
dec esi
cmp esi, 0
jl 0x51944b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00511c34
mov edx, dword [0x50540c]
call fcn.0047f138
test al, al
jne 0x51942a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00511c34
mov edx, dword [0x504f68]
call fcn.0047f138
test al, al
jne 0x51942a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00511c34
mov edx, dword [0x505c24]
call fcn.0047f138
test al, al
jne 0x51942a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00511c34
mov edx, dword [0x505db0]
call fcn.0047f138
test al, al
je 0x519441
test ebx, ebx
jg 0x51942a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
dec eax
jne 0x519441
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00508734
dec esi
cmp esi, 0xffffffff
jne 0x51937c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
call fcn.00511f50
test al, al
je 0x51948c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x30]
call fcn.005086ec
test eax, eax
jne 0x51948c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
call fcn.0047ef20
dec ebx
cmp ebx, 0xffffffff
jne 0x51935b
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.0042bebc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x57d7fc]
call fcn.00484468
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.0047f1a8
test byte [ebp - 5], 1
je 0x519626
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x519634
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
call fcn.00511f50
test al, al
jne 0x51961a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
call fcn.00512fbc
test al, al
je 0x51961a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x34]
call fcn.00515864
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
call fcn.00514984
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
call fcn.00511f50
test al, al
je 0x5195d1
test ebx, ebx
jle 0x5195c4
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00516638
call fcn.00512fbc
test al, al
je 0x5195c4
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00516638
mov eax, dword [eax + 0x34]
call fcn.00515864
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00516638
mov eax, dword [eax + 0x34]
pop edx
call fcn.0051586c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00508734
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.0042bebc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x57d7fc]
call fcn.00484468
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.0047f1a8
dec ebx
cmp ebx, 0xffffffff
jne 0x519500
jmp 0x519634
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x51976a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x519721
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
cmp dword [eax + 0x34], 0
je 0x5196d6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00515864
test ax, ax
je 0x5196a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
dec eax
jne 0x5196d6
mov eax, esi
call fcn.0051571c
test al, al
jne 0x5196d6
mov eax, esi
call fcn.00515874
test al, al
jne 0x5196d6
mov eax, esi
call fcn.00515890
sub al, 2
jb 0x5196cf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005086ec
dec eax
jne 0x5196d6
mov eax, esi
call fcn.0047ef20
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
call fcn.00511f50
test al, al
je 0x519717
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
mov eax, dword [eax + 0x30]
call fcn.005086ec
test eax, eax
jne 0x519717
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00516638
call fcn.0047ef20
dec ebx
cmp ebx, 0xffffffff
jne 0x519663
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.0042bebc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x57d7fc]
call fcn.00484468
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.0047f1a8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5197cb
call fcn.0047de78
test eax, eax
jne 0x519787
mov ebx, 0x64
jmp 0x519789
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.0042bebc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x57d7fc]
call fcn.00484468
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.0047f1a8
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x519815
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00480934
ret