Function at 0x72903c
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 0x7299a2
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 0x729987
mov eax, dword [ebp - 4]
call fcn.0072a48c
xor eax, eax
push ebp
push 0x729975
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0072a45c
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004453ac
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x77bfec]
call fcn.0040b004
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.0040568c
xor eax, eax
push ebp
push 0x729958
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.007191f0
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x7291bb
mov eax, dword [ebp - 4]
call fcn.0072ac58
cmp dword [eax + 8], 0
jle 0x72912b
mov eax, dword [ebp - 4]
call fcn.0072ac58
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
mov edi, eax
dec edi
test edi, edi
jl 0x7291bb
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x7291b7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
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.004453ac
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x77bfec]
call fcn.0040b004
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.0040568c
inc ebx
dec edi
jne 0x729140
test byte [ebp - 5], 4
je 0x7293cf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
mov edi, eax
dec edi
test edi, edi
jl 0x7292a5
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
call fcn.007236cc
test al, al
je 0x72929d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x34]
call fcn.00725ea0
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00729024
test al, al
jne 0x72929d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00725e40
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.004453ac
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x77bfec]
call fcn.0040b004
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.0040568c
inc ebx
dec edi
jne 0x7291de
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
mov edi, eax
sub edi, 2
test edi, edi
jl 0x7293df
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
cmp dword [eax + 0x34], 0
je 0x7293c5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x34]
call fcn.00725fa8
add al, 0xfe
sub al, 2
jae 0x7293c5
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00726d50
call fcn.007236cc
test al, al
jne 0x7293c5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
lea edx, [ebp - 0x20]
call fcn.007232d4
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00726d50
lea edx, [ebp - 0x30]
call fcn.007232d4
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 0x7293c5
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x72937c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00725fb8
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.004453ac
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x77bfec]
call fcn.0040b004
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.0040568c
inc ebx
dec edi
jne 0x7292c0
jmp 0x7293df
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x7294b2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x7294c0
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x729409
dec esi
test esi, esi
jle 0x729439
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00726d50
cmp dword [eax + 0x34], 0
je 0x729439
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00726d50
mov eax, dword [eax + 0x34]
call fcn.00725fa8
cmp al, 3
je 0x729408
test esi, esi
jl 0x72945e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00726d50
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
pop edx
call fcn.00725440
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.004453ac
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x77bfec]
call fcn.0040b004
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.0040568c
dec ebx
test ebx, ebx
jne 0x729400
jmp 0x7294c0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x729673
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x72962a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x30]
call fcn.007191f0
mov esi, eax
dec esi
cmp esi, 0
jl 0x7295df
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00722284
mov edx, dword [0x715d50]
call fcn.004055ec
test al, al
jne 0x7295be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00722284
mov edx, dword [0x715898]
call fcn.004055ec
test al, al
jne 0x7295be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00722284
mov edx, dword [0x716594]
call fcn.004055ec
test al, al
jne 0x7295be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00722284
mov edx, dword [0x716734]
call fcn.004055ec
test al, al
je 0x7295d5
test ebx, ebx
jg 0x7295be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
dec eax
jne 0x7295d5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00719238
dec esi
cmp esi, 0xffffffff
jne 0x729510
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
call fcn.007225a8
test al, al
je 0x729620
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x30]
call fcn.007191f0
test eax, eax
jne 0x729620
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
call fcn.00405330
dec ebx
cmp ebx, 0xffffffff
jne 0x7294ef
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.004453ac
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x77bfec]
call fcn.0040b004
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.0040568c
test byte [ebp - 5], 1
je 0x7297ba
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x7297c8
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
call fcn.007225a8
test al, al
jne 0x7297ae
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
call fcn.007236cc
test al, al
je 0x7297ae
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x34]
call fcn.00725f7c
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
call fcn.0072508c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
call fcn.007225a8
test al, al
je 0x729765
test ebx, ebx
jle 0x729758
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00726d50
call fcn.007236cc
test al, al
je 0x729758
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00726d50
mov eax, dword [eax + 0x34]
call fcn.00725f7c
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00726d50
mov eax, dword [eax + 0x34]
pop edx
call fcn.00725f84
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00719238
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.004453ac
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x77bfec]
call fcn.0040b004
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.0040568c
dec ebx
cmp ebx, 0xffffffff
jne 0x729694
jmp 0x7297c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x7298fe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x7298b5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
cmp dword [eax + 0x34], 0
je 0x72986a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00725f7c
test ax, ax
je 0x729834
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
dec eax
jne 0x72986a
mov eax, esi
call fcn.00725e34
test al, al
jne 0x72986a
mov eax, esi
call fcn.00725f8c
test al, al
jne 0x72986a
mov eax, esi
call fcn.00725fa8
sub al, 2
jb 0x729863
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.007191f0
dec eax
jne 0x72986a
mov eax, esi
call fcn.00405330
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
call fcn.007225a8
test al, al
je 0x7298ab
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
mov eax, dword [eax + 0x30]
call fcn.007191f0
test eax, eax
jne 0x7298ab
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00726d50
call fcn.00405330
dec ebx
cmp ebx, 0xffffffff
jne 0x7297f7
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.004453ac
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x77bfec]
call fcn.0040b004
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.0040568c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x72995f
call fcn.004046f0
test eax, eax
jne 0x72991b
mov ebx, 0x64
jmp 0x72991d
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.004453ac
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x77bfec]
call fcn.0040b004
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.0040568c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7299a9
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00406ff8
ret