Function at 0x52a6b0
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 0x52b016
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 0x52affb
mov eax, dword [ebp - 4]
call fcn.0052ba10
xor eax, eax
push ebp
push 0x52afe9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0052b9e0
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00421d94
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x53beb0]
call fcn.00408330
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.00403f64
xor eax, eax
push ebp
push 0x52afcc
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.0051e894
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x52a82f
mov eax, dword [ebp - 4]
call fcn.0052c1f8
cmp dword [eax + 8], 0
jle 0x52a79f
mov eax, dword [ebp - 4]
call fcn.0052c1f8
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
mov edi, eax
dec edi
test edi, edi
jl 0x52a82f
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x52a82b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
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.00421d94
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x53beb0]
call fcn.00408330
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.00403f64
inc ebx
dec edi
jne 0x52a7b4
test byte [ebp - 5], 4
je 0x52aa43
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
mov edi, eax
dec edi
test edi, edi
jl 0x52a919
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
call fcn.00526580
test al, al
je 0x52a911
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x34]
call fcn.00528b1c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.0052a698
test al, al
jne 0x52a911
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00528af8
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.00421d94
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x53beb0]
call fcn.00408330
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.00403f64
inc ebx
dec edi
jne 0x52a852
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
mov edi, eax
sub edi, 2
test edi, edi
jl 0x52aa53
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
cmp dword [eax + 0x34], 0
je 0x52aa39
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x34]
call fcn.00528c14
add al, 0xfe
sub al, 2
jae 0x52aa39
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005296dc
call fcn.00526580
test al, al
jne 0x52aa39
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
lea edx, [ebp - 0x20]
call fcn.005262b0
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005296dc
lea edx, [ebp - 0x30]
call fcn.005262b0
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 0x52aa39
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x52a9f0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00528c24
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.00421d94
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x53beb0]
call fcn.00408330
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.00403f64
inc ebx
dec edi
jne 0x52a934
jmp 0x52aa53
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x52ab26
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x52ab34
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x52aa7d
dec esi
test esi, esi
jle 0x52aaad
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005296dc
cmp dword [eax + 0x34], 0
je 0x52aaad
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005296dc
mov eax, dword [eax + 0x34]
call fcn.00528c14
cmp al, 3
je 0x52aa7c
test esi, esi
jl 0x52aad2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005296dc
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
pop edx
call fcn.005282b4
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.00421d94
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x53beb0]
call fcn.00408330
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.00403f64
dec ebx
test ebx, ebx
jne 0x52aa74
jmp 0x52ab34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x52ace7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x52ac9e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x30]
call fcn.0051e894
mov esi, eax
dec esi
cmp esi, 0
jl 0x52ac53
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005252e0
mov edx, dword [0x51da94]
call fcn.00403ef4
test al, al
jne 0x52ac32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005252e0
mov edx, dword [0x51d9d4]
call fcn.00403ef4
test al, al
jne 0x52ac32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005252e0
mov edx, dword [0x51dc98]
call fcn.00403ef4
test al, al
jne 0x52ac32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005252e0
mov edx, dword [0x51dd68]
call fcn.00403ef4
test al, al
je 0x52ac49
test ebx, ebx
jg 0x52ac32
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
dec eax
jne 0x52ac49
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0051e8dc
dec esi
cmp esi, 0xffffffff
jne 0x52ab84
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
call fcn.00525604
test al, al
je 0x52ac94
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x30]
call fcn.0051e894
test eax, eax
jne 0x52ac94
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
call fcn.00403d54
dec ebx
cmp ebx, 0xffffffff
jne 0x52ab63
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.00421d94
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x53beb0]
call fcn.00408330
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.00403f64
test byte [ebp - 5], 1
je 0x52ae2e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x52ae3c
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
call fcn.00525604
test al, al
jne 0x52ae22
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
call fcn.00526580
test al, al
je 0x52ae22
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x34]
call fcn.00528bf8
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
call fcn.00527efc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
call fcn.00525604
test al, al
je 0x52add9
test ebx, ebx
jle 0x52adcc
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005296dc
call fcn.00526580
test al, al
je 0x52adcc
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005296dc
mov eax, dword [eax + 0x34]
call fcn.00528bf8
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005296dc
mov eax, dword [eax + 0x34]
pop edx
call fcn.00528c00
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0051e8dc
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.00421d94
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x53beb0]
call fcn.00408330
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.00403f64
dec ebx
cmp ebx, 0xffffffff
jne 0x52ad08
jmp 0x52ae3c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x52af72
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x52af29
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
cmp dword [eax + 0x34], 0
je 0x52aede
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00528bf8
test ax, ax
je 0x52aea8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
dec eax
jne 0x52aede
mov eax, esi
call fcn.00528aec
test al, al
jne 0x52aede
mov eax, esi
call fcn.00528c08
test al, al
jne 0x52aede
mov eax, esi
call fcn.00528c14
sub al, 2
jb 0x52aed7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0051e894
dec eax
jne 0x52aede
mov eax, esi
call fcn.00403d54
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
call fcn.00525604
test al, al
je 0x52af1f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
mov eax, dword [eax + 0x30]
call fcn.0051e894
test eax, eax
jne 0x52af1f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005296dc
call fcn.00403d54
dec ebx
cmp ebx, 0xffffffff
jne 0x52ae6b
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.00421d94
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x53beb0]
call fcn.00408330
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.00403f64
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52afd3
call fcn.00403100
test eax, eax
jne 0x52af8f
mov ebx, 0x64
jmp 0x52af91
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.00421d94
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x53beb0]
call fcn.00408330
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.00403f64
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52b01d
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00405b58
ret