Function at 0x5312e4
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 0x531c4a
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 0x531c2f
mov eax, dword [ebp - 4]
call fcn.00532734
xor eax, eax
push ebp
push 0x531c1d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00532704
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0042fa78
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x61fc18]
call fcn.00488a2c
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.004835c0
xor eax, eax
push ebp
push 0x531c00
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.00521744
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x531463
mov eax, dword [ebp - 4]
call fcn.00532f00
cmp dword [eax + 8], 0
jle 0x5313d3
mov eax, dword [ebp - 4]
call fcn.00532f00
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
mov edi, eax
dec edi
test edi, edi
jl 0x531463
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x53145f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
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.0042fa78
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x61fc18]
call fcn.00488a2c
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.004835c0
inc ebx
dec edi
jne 0x5313e8
test byte [ebp - 5], 4
je 0x531677
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
mov edi, eax
dec edi
test edi, edi
jl 0x53154d
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
call fcn.0052b9a0
test al, al
je 0x531545
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x34]
call fcn.0052e16c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.005312cc
test al, al
jne 0x531545
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0052e10c
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.0042fa78
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x61fc18]
call fcn.00488a2c
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.004835c0
inc ebx
dec edi
jne 0x531486
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
mov edi, eax
sub edi, 2
test edi, edi
jl 0x531687
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
cmp dword [eax + 0x34], 0
je 0x53166d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x34]
call fcn.0052e274
add al, 0xfe
sub al, 2
jae 0x53166d
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0052f01c
call fcn.0052b9a0
test al, al
jne 0x53166d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
lea edx, [ebp - 0x20]
call fcn.0052b660
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0052f01c
lea edx, [ebp - 0x30]
call fcn.0052b660
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 0x53166d
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.USER32.DLL_EqualRect
test eax, eax
je 0x531624
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0052e284
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.0042fa78
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x61fc18]
call fcn.00488a2c
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.004835c0
inc ebx
dec edi
jne 0x531568
jmp 0x531687
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x53175a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x531768
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x5316b1
dec esi
test esi, esi
jle 0x5316e1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0052f01c
cmp dword [eax + 0x34], 0
je 0x5316e1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0052f01c
mov eax, dword [eax + 0x34]
call fcn.0052e274
cmp al, 3
je 0x5316b0
test esi, esi
jl 0x531706
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0052f01c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
pop edx
call fcn.0052d720
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.0042fa78
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x61fc18]
call fcn.00488a2c
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.004835c0
dec ebx
test ebx, ebx
jne 0x5316a8
jmp 0x531768
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x53191b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5318d2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x30]
call fcn.00521744
mov esi, eax
dec esi
cmp esi, 0
jl 0x531887
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0052a618
mov edx, dword [0x51e464]
call fcn.00483550
test al, al
jne 0x531866
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0052a618
mov edx, dword [0x51dfc0]
call fcn.00483550
test al, al
jne 0x531866
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0052a618
mov edx, dword [0x51ec7c]
call fcn.00483550
test al, al
jne 0x531866
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0052a618
mov edx, dword [0x51ee08]
call fcn.00483550
test al, al
je 0x53187d
test ebx, ebx
jg 0x531866
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
dec eax
jne 0x53187d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0052178c
dec esi
cmp esi, 0xffffffff
jne 0x5317b8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
call fcn.0052a934
test al, al
je 0x5318c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x30]
call fcn.00521744
test eax, eax
jne 0x5318c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
call fcn.00483338
dec ebx
cmp ebx, 0xffffffff
jne 0x531797
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.0042fa78
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x61fc18]
call fcn.00488a2c
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.004835c0
test byte [ebp - 5], 1
je 0x531a62
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x531a70
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
call fcn.0052a934
test al, al
jne 0x531a56
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
call fcn.0052b9a0
test al, al
je 0x531a56
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x34]
call fcn.0052e248
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
call fcn.0052d368
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
call fcn.0052a934
test al, al
je 0x531a0d
test ebx, ebx
jle 0x531a00
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0052f01c
call fcn.0052b9a0
test al, al
je 0x531a00
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0052f01c
mov eax, dword [eax + 0x34]
call fcn.0052e248
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0052f01c
mov eax, dword [eax + 0x34]
pop edx
call fcn.0052e250
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052178c
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.0042fa78
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x61fc18]
call fcn.00488a2c
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.004835c0
dec ebx
cmp ebx, 0xffffffff
jne 0x53193c
jmp 0x531a70
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x531ba6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x531b5d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
cmp dword [eax + 0x34], 0
je 0x531b12
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.0052e248
test ax, ax
je 0x531adc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
dec eax
jne 0x531b12
mov eax, esi
call fcn.0052e100
test al, al
jne 0x531b12
mov eax, esi
call fcn.0052e258
test al, al
jne 0x531b12
mov eax, esi
call fcn.0052e274
sub al, 2
jb 0x531b0b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00521744
dec eax
jne 0x531b12
mov eax, esi
call fcn.00483338
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
call fcn.0052a934
test al, al
je 0x531b53
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
mov eax, dword [eax + 0x30]
call fcn.00521744
test eax, eax
jne 0x531b53
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0052f01c
call fcn.00483338
dec ebx
cmp ebx, 0xffffffff
jne 0x531a9f
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.0042fa78
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x61fc18]
call fcn.00488a2c
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.004835c0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x531c07
call fcn.0048275c
test eax, eax
jne 0x531bc3
mov ebx, 0x64
jmp 0x531bc5
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.0042fa78
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x61fc18]
call fcn.00488a2c
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.004835c0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x531c51
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00484d1c
ret