Function at 0x72cdbc
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 0x72d71d
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 0x72d702
mov eax, dword [ebp - 4]
call fcn.0072e2b0
xor eax, eax
push ebp
push 0x72d6f0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0072e278
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call reloc.gdi32.dll_GetCurrentObject
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x803224]
call fcn.0040e620
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.00406dd0
xor eax, eax
push ebp
push 0x72d6d3
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.0071e188
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x72cf3b
mov eax, dword [ebp - 4]
call fcn.0072ea7c
cmp dword [eax + 8], 0
jle 0x72ceab
mov eax, dword [ebp - 4]
call fcn.0072ea7c
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
mov edi, eax
dec edi
test edi, edi
jl 0x72cf3b
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x72cf37
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
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 reloc.gdi32.dll_GetCurrentObject
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x803224]
call fcn.0040e620
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.00406dd0
inc ebx
dec edi
jne 0x72cec0
test byte [ebp - 5], 4
je 0x72d14a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
mov edi, eax
dec edi
test edi, edi
jl 0x72d025
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
call fcn.007285a4
test al, al
je 0x72d01d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x34]
call fcn.0072ad3c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.0072cda4
test al, al
jne 0x72d01d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0072acdc
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 reloc.gdi32.dll_GetCurrentObject
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x803224]
call fcn.0040e620
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.00406dd0
inc ebx
dec edi
jne 0x72cf5e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
mov edi, eax
sub edi, 2
test edi, edi
jl 0x72d15a
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
cmp dword [eax + 0x34], 0
je 0x72d140
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x34]
call fcn.0072ae44
add al, 0xfe
sub al, 2
jae 0x72d140
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0072bb74
call fcn.007285a4
test al, al
jne 0x72d140
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
lea edx, [ebp - 0x20]
call fcn.00728264
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0072bb74
lea edx, [ebp - 0x30]
call fcn.00728264
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x40]
call fcn.00410b0c
test al, al
je 0x72d140
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x40]
call fcn.00410a40
test al, al
je 0x72d0f7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0072ae54
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 reloc.gdi32.dll_GetCurrentObject
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x803224]
call fcn.0040e620
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.00406dd0
inc ebx
dec edi
jne 0x72d040
jmp 0x72d15a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x72d22d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x72d23b
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x72d184
dec esi
test esi, esi
jle 0x72d1b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0072bb74
cmp dword [eax + 0x34], 0
je 0x72d1b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0072bb74
mov eax, dword [eax + 0x34]
call fcn.0072ae44
cmp al, 3
je 0x72d183
test esi, esi
jl 0x72d1d9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0072bb74
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
pop edx
call fcn.0072a334
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 reloc.gdi32.dll_GetCurrentObject
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x803224]
call fcn.0040e620
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.00406dd0
dec ebx
test ebx, ebx
jne 0x72d17b
jmp 0x72d23b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x72d3ee
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x72d3a5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x30]
call fcn.0071e188
mov esi, eax
dec esi
cmp esi, 0
jl 0x72d35a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0072721c
mov edx, dword [0x71ad58]
call fcn.00406d30
test al, al
jne 0x72d339
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0072721c
mov edx, dword [0x71a960]
call fcn.00406d30
test al, al
jne 0x72d339
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0072721c
mov edx, dword [0x71b59c]
call fcn.00406d30
test al, al
jne 0x72d339
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0072721c
mov edx, dword [0x71b73c]
call fcn.00406d30
test al, al
je 0x72d350
test ebx, ebx
jg 0x72d339
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
dec eax
jne 0x72d350
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0071e1d0
dec esi
cmp esi, 0xffffffff
jne 0x72d28b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
call fcn.00727538
test al, al
je 0x72d39b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x30]
call fcn.0071e188
test eax, eax
jne 0x72d39b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
call fcn.00406ad8
dec ebx
cmp ebx, 0xffffffff
jne 0x72d26a
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 reloc.gdi32.dll_GetCurrentObject
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x803224]
call fcn.0040e620
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.00406dd0
test byte [ebp - 5], 1
je 0x72d535
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x72d543
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
call fcn.00727538
test al, al
jne 0x72d529
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
call fcn.007285a4
test al, al
je 0x72d529
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x34]
call fcn.0072ae18
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
call fcn.00729f80
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
call fcn.00727538
test al, al
je 0x72d4e0
test ebx, ebx
jle 0x72d4d3
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0072bb74
call fcn.007285a4
test al, al
je 0x72d4d3
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0072bb74
mov eax, dword [eax + 0x34]
call fcn.0072ae18
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0072bb74
mov eax, dword [eax + 0x34]
pop edx
call fcn.0072ae20
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0071e1d0
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 reloc.gdi32.dll_GetCurrentObject
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x803224]
call fcn.0040e620
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.00406dd0
dec ebx
cmp ebx, 0xffffffff
jne 0x72d40f
jmp 0x72d543
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x72d679
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x72d630
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
cmp dword [eax + 0x34], 0
je 0x72d5e5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.0072ae18
test ax, ax
je 0x72d5af
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
dec eax
jne 0x72d5e5
mov eax, esi
call fcn.0072acd0
test al, al
jne 0x72d5e5
mov eax, esi
call fcn.0072ae28
test al, al
jne 0x72d5e5
mov eax, esi
call fcn.0072ae44
sub al, 2
jb 0x72d5de
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0071e188
dec eax
jne 0x72d5e5
mov eax, esi
call fcn.00406ad8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
call fcn.00727538
test al, al
je 0x72d626
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
mov eax, dword [eax + 0x30]
call fcn.0071e188
test eax, eax
jne 0x72d626
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0072bb74
call fcn.00406ad8
dec ebx
cmp ebx, 0xffffffff
jne 0x72d572
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 reloc.gdi32.dll_GetCurrentObject
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x803224]
call fcn.0040e620
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.00406dd0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x72d6da
call fcn.00405524
test eax, eax
jne 0x72d696
mov ebx, 0x64
jmp 0x72d698
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 reloc.gdi32.dll_GetCurrentObject
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x803224]
call fcn.0040e620
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.00406dd0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x72d724
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.004088a4
ret