Function at 0x541918
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 0x54227e
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 0x542263
mov eax, dword [ebp - 4]
call fcn.00542d68
xor eax, eax
push ebp
push 0x542251
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00542d38
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00426518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x62ac3c]
call fcn.00479878
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.00474428
xor eax, eax
push ebp
push 0x542234
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.0053115c
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x541a97
mov eax, dword [ebp - 4]
call fcn.00543534
cmp dword [eax + 8], 0
jle 0x541a07
mov eax, dword [ebp - 4]
call fcn.00543534
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
mov edi, eax
dec edi
test edi, edi
jl 0x541a97
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x541a93
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
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.00426518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x62ac3c]
call fcn.00479878
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.00474428
inc ebx
dec edi
jne 0x541a1c
test byte [ebp - 5], 4
je 0x541cab
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
mov edi, eax
dec edi
test edi, edi
jl 0x541b81
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
call fcn.0053ba2c
test al, al
je 0x541b79
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x34]
call fcn.0053e1f8
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00541900
test al, al
jne 0x541b79
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0053e198
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.00426518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x62ac3c]
call fcn.00479878
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.00474428
inc ebx
dec edi
jne 0x541aba
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
mov edi, eax
sub edi, 2
test edi, edi
jl 0x541cbb
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
cmp dword [eax + 0x34], 0
je 0x541ca1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x34]
call fcn.0053e300
add al, 0xfe
sub al, 2
jae 0x541ca1
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053f0a8
call fcn.0053ba2c
test al, al
jne 0x541ca1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
lea edx, [ebp - 0x20]
call fcn.0053b6ec
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053f0a8
lea edx, [ebp - 0x30]
call fcn.0053b6ec
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 0x541ca1
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.USER32.DLL_EqualRect
test eax, eax
je 0x541c58
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.0053e310
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.00426518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x62ac3c]
call fcn.00479878
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.00474428
inc ebx
dec edi
jne 0x541b9c
jmp 0x541cbb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x541d8e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x541d9c
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x541ce5
dec esi
test esi, esi
jle 0x541d15
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053f0a8
cmp dword [eax + 0x34], 0
je 0x541d15
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053f0a8
mov eax, dword [eax + 0x34]
call fcn.0053e300
cmp al, 3
je 0x541ce4
test esi, esi
jl 0x541d3a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053f0a8
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
pop edx
call fcn.0053d7ac
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.00426518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x62ac3c]
call fcn.00479878
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.00474428
dec ebx
test ebx, ebx
jne 0x541cdc
jmp 0x541d9c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x541f4f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x541f06
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x30]
call fcn.0053115c
mov esi, eax
dec esi
cmp esi, 0
jl 0x541ebb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053a6a4
mov edx, dword [0x52de7c]
call fcn.004743b8
test al, al
jne 0x541e9a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053a6a4
mov edx, dword [0x52d9d8]
call fcn.004743b8
test al, al
jne 0x541e9a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053a6a4
mov edx, dword [0x52e694]
call fcn.004743b8
test al, al
jne 0x541e9a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053a6a4
mov edx, dword [0x52e820]
call fcn.004743b8
test al, al
je 0x541eb1
test ebx, ebx
jg 0x541e9a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
dec eax
jne 0x541eb1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005311a4
dec esi
cmp esi, 0xffffffff
jne 0x541dec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
call fcn.0053a9c0
test al, al
je 0x541efc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x30]
call fcn.0053115c
test eax, eax
jne 0x541efc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
call fcn.004741a0
dec ebx
cmp ebx, 0xffffffff
jne 0x541dcb
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.00426518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x62ac3c]
call fcn.00479878
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.00474428
test byte [ebp - 5], 1
je 0x542096
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5420a4
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
call fcn.0053a9c0
test al, al
jne 0x54208a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
call fcn.0053ba2c
test al, al
je 0x54208a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x34]
call fcn.0053e2d4
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
call fcn.0053d3f4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
call fcn.0053a9c0
test al, al
je 0x542041
test ebx, ebx
jle 0x542034
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053f0a8
call fcn.0053ba2c
test al, al
je 0x542034
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053f0a8
mov eax, dword [eax + 0x34]
call fcn.0053e2d4
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053f0a8
mov eax, dword [eax + 0x34]
pop edx
call fcn.0053e2dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005311a4
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.00426518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x62ac3c]
call fcn.00479878
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.00474428
dec ebx
cmp ebx, 0xffffffff
jne 0x541f70
jmp 0x5420a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5421da
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x542191
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
cmp dword [eax + 0x34], 0
je 0x542146
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.0053e2d4
test ax, ax
je 0x542110
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
dec eax
jne 0x542146
mov eax, esi
call fcn.0053e18c
test al, al
jne 0x542146
mov eax, esi
call fcn.0053e2e4
test al, al
jne 0x542146
mov eax, esi
call fcn.0053e300
sub al, 2
jb 0x54213f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053115c
dec eax
jne 0x542146
mov eax, esi
call fcn.004741a0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
call fcn.0053a9c0
test al, al
je 0x542187
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
mov eax, dword [eax + 0x30]
call fcn.0053115c
test eax, eax
jne 0x542187
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0053f0a8
call fcn.004741a0
dec ebx
cmp ebx, 0xffffffff
jne 0x5420d3
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.00426518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x62ac3c]
call fcn.00479878
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.00474428
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x54223b
call fcn.00473624
test eax, eax
jne 0x5421f7
mov ebx, 0x64
jmp 0x5421f9
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.00426518
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x62ac3c]
call fcn.00479878
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.00474428
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x542285
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00475c94
ret