Function at 0x4ad078
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 0x4ad9de
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 0x4ad9c3
mov eax, dword [ebp - 4]
call fcn.004ae3c8
xor eax, eax
push ebp
push 0x4ad9b1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.004ae3a0
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004185a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x4c043c]
call fcn.00406bdc
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.00403e98
xor eax, eax
push ebp
push 0x4ad994
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.004a13d0
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x4ad1f7
mov eax, dword [ebp - 4]
call fcn.004aebb0
cmp dword [eax + 8], 0
jle 0x4ad167
mov eax, dword [ebp - 4]
call fcn.004aebb0
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
mov edi, eax
dec edi
test edi, edi
jl 0x4ad1f7
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x4ad1f3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
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.004185a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x4c043c]
call fcn.00406bdc
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.00403e98
inc ebx
dec edi
jne 0x4ad17c
test byte [ebp - 5], 4
je 0x4ad40b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
mov edi, eax
dec edi
test edi, edi
jl 0x4ad2e1
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
call fcn.004a8fa0
test al, al
je 0x4ad2d9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x34]
call fcn.004ab518
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.004ad060
test al, al
jne 0x4ad2d9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.004ab4f4
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.004185a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x4c043c]
call fcn.00406bdc
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.00403e98
inc ebx
dec edi
jne 0x4ad21a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
mov edi, eax
sub edi, 2
test edi, edi
jl 0x4ad41b
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
cmp dword [eax + 0x34], 0
je 0x4ad401
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x34]
call fcn.004ab610
add al, 0xfe
sub al, 2
jae 0x4ad401
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004ac0cc
call fcn.004a8fa0
test al, al
jne 0x4ad401
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
lea edx, [ebp - 0x20]
call fcn.004a8cd0
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004ac0cc
lea edx, [ebp - 0x30]
call fcn.004a8cd0
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 0x4ad401
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x4ad3b8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.004ab620
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.004185a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x4c043c]
call fcn.00406bdc
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.00403e98
inc ebx
dec edi
jne 0x4ad2fc
jmp 0x4ad41b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x4ad4ee
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x4ad4fc
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x4ad445
dec esi
test esi, esi
jle 0x4ad475
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004ac0cc
cmp dword [eax + 0x34], 0
je 0x4ad475
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004ac0cc
mov eax, dword [eax + 0x34]
call fcn.004ab610
cmp al, 3
je 0x4ad444
test esi, esi
jl 0x4ad49a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004ac0cc
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
pop edx
call fcn.004aacc4
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.004185a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x4c043c]
call fcn.00406bdc
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.00403e98
dec ebx
test ebx, ebx
jne 0x4ad43c
jmp 0x4ad4fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x4ad6af
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x4ad666
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x30]
call fcn.004a13d0
mov esi, eax
dec esi
cmp esi, 0
jl 0x4ad61b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004a7d04
mov edx, dword [0x4a06e0]
call fcn.00403e28
test al, al
jne 0x4ad5fa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004a7d04
mov edx, dword [0x4a062c]
call fcn.00403e28
test al, al
jne 0x4ad5fa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004a7d04
mov edx, dword [0x4a08c0]
call fcn.00403e28
test al, al
jne 0x4ad5fa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004a7d04
mov edx, dword [0x4a0984]
call fcn.00403e28
test al, al
je 0x4ad611
test ebx, ebx
jg 0x4ad5fa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
dec eax
jne 0x4ad611
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004a1418
dec esi
cmp esi, 0xffffffff
jne 0x4ad54c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
call fcn.004a8024
test al, al
je 0x4ad65c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x30]
call fcn.004a13d0
test eax, eax
jne 0x4ad65c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
call fcn.00403c9c
dec ebx
cmp ebx, 0xffffffff
jne 0x4ad52b
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.004185a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x4c043c]
call fcn.00406bdc
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.00403e98
test byte [ebp - 5], 1
je 0x4ad7f6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x4ad804
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
call fcn.004a8024
test al, al
jne 0x4ad7ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
call fcn.004a8fa0
test al, al
je 0x4ad7ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x34]
call fcn.004ab5f4
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
call fcn.004aa90c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
call fcn.004a8024
test al, al
je 0x4ad7a1
test ebx, ebx
jle 0x4ad794
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004ac0cc
call fcn.004a8fa0
test al, al
je 0x4ad794
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004ac0cc
mov eax, dword [eax + 0x34]
call fcn.004ab5f4
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004ac0cc
mov eax, dword [eax + 0x34]
pop edx
call fcn.004ab5fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004a1418
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.004185a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x4c043c]
call fcn.00406bdc
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.00403e98
dec ebx
cmp ebx, 0xffffffff
jne 0x4ad6d0
jmp 0x4ad804
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x4ad93a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x4ad8f1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
cmp dword [eax + 0x34], 0
je 0x4ad8a6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.004ab5f4
test ax, ax
je 0x4ad870
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
dec eax
jne 0x4ad8a6
mov eax, esi
call fcn.004ab4e8
test al, al
jne 0x4ad8a6
mov eax, esi
call fcn.004ab604
test al, al
jne 0x4ad8a6
mov eax, esi
call fcn.004ab610
sub al, 2
jb 0x4ad89f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004a13d0
dec eax
jne 0x4ad8a6
mov eax, esi
call fcn.00403c9c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
call fcn.004a8024
test al, al
je 0x4ad8e7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
mov eax, dword [eax + 0x30]
call fcn.004a13d0
test eax, eax
jne 0x4ad8e7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004ac0cc
call fcn.00403c9c
dec ebx
cmp ebx, 0xffffffff
jne 0x4ad833
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.004185a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x4c043c]
call fcn.00406bdc
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.00403e98
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ad99b
call fcn.00402f70
test eax, eax
jne 0x4ad957
mov ebx, 0x64
jmp 0x4ad959
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.004185a8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x4c043c]
call fcn.00406bdc
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.00403e98
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ad9e5
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00404bc0
ret