Function at 0x543dfc
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 0x544762
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 0x544747
mov eax, dword [ebp - 4]
call fcn.0054524c
xor eax, eax
push ebp
push 0x544735
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0054521c
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004430fc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x67d794]
call fcn.0040aad4
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.0040543c
xor eax, eax
push ebp
push 0x544718
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.0053425c
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x543f7b
mov eax, dword [ebp - 4]
call fcn.00545a18
cmp dword [eax + 8], 0
jle 0x543eeb
mov eax, dword [ebp - 4]
call fcn.00545a18
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
mov edi, eax
dec edi
test edi, edi
jl 0x543f7b
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x543f77
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
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.004430fc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x67d794]
call fcn.0040aad4
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.0040543c
inc ebx
dec edi
jne 0x543f00
test byte [ebp - 5], 4
je 0x54418f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
mov edi, eax
dec edi
test edi, edi
jl 0x544065
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
call fcn.0053e4b8
test al, al
je 0x54405d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x34]
call fcn.00540c84
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00543de4
test al, al
jne 0x54405d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00540c24
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.004430fc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x67d794]
call fcn.0040aad4
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.0040543c
inc ebx
dec edi
jne 0x543f9e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
mov edi, eax
sub edi, 2
test edi, edi
jl 0x54419f
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
cmp dword [eax + 0x34], 0
je 0x544185
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x34]
call fcn.00540d8c
add al, 0xfe
sub al, 2
jae 0x544185
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00541b34
call fcn.0053e4b8
test al, al
jne 0x544185
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
lea edx, [ebp - 0x20]
call fcn.0053e178
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00541b34
lea edx, [ebp - 0x30]
call fcn.0053e178
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 0x544185
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x54413c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00540d9c
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.004430fc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x67d794]
call fcn.0040aad4
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.0040543c
inc ebx
dec edi
jne 0x544080
jmp 0x54419f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x544272
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x544280
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x5441c9
dec esi
test esi, esi
jle 0x5441f9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00541b34
cmp dword [eax + 0x34], 0
je 0x5441f9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00541b34
mov eax, dword [eax + 0x34]
call fcn.00540d8c
cmp al, 3
je 0x5441c8
test esi, esi
jl 0x54421e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00541b34
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
pop edx
call fcn.00540238
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.004430fc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x67d794]
call fcn.0040aad4
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.0040543c
dec ebx
test ebx, ebx
jne 0x5441c0
jmp 0x544280
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x544433
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5443ea
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x30]
call fcn.0053425c
mov esi, eax
dec esi
cmp esi, 0
jl 0x54439f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053d130
mov edx, dword [0x530f7c]
call fcn.00405398
test al, al
jne 0x54437e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053d130
mov edx, dword [0x530ad8]
call fcn.00405398
test al, al
jne 0x54437e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053d130
mov edx, dword [0x531794]
call fcn.00405398
test al, al
jne 0x54437e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0053d130
mov edx, dword [0x531920]
call fcn.00405398
test al, al
je 0x544395
test ebx, ebx
jg 0x54437e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
dec eax
jne 0x544395
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005342a4
dec esi
cmp esi, 0xffffffff
jne 0x5442d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
call fcn.0053d44c
test al, al
je 0x5443e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x30]
call fcn.0053425c
test eax, eax
jne 0x5443e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
call fcn.00405180
dec ebx
cmp ebx, 0xffffffff
jne 0x5442af
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.004430fc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x67d794]
call fcn.0040aad4
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.0040543c
test byte [ebp - 5], 1
je 0x54457a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x544588
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
call fcn.0053d44c
test al, al
jne 0x54456e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
call fcn.0053e4b8
test al, al
je 0x54456e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x34]
call fcn.00540d60
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
call fcn.0053fe80
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
call fcn.0053d44c
test al, al
je 0x544525
test ebx, ebx
jle 0x544518
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00541b34
call fcn.0053e4b8
test al, al
je 0x544518
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00541b34
mov eax, dword [eax + 0x34]
call fcn.00540d60
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00541b34
mov eax, dword [eax + 0x34]
pop edx
call fcn.00540d68
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005342a4
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.004430fc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x67d794]
call fcn.0040aad4
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.0040543c
dec ebx
cmp ebx, 0xffffffff
jne 0x544454
jmp 0x544588
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5446be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x544675
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
cmp dword [eax + 0x34], 0
je 0x54462a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00540d60
test ax, ax
je 0x5445f4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
dec eax
jne 0x54462a
mov eax, esi
call fcn.00540c18
test al, al
jne 0x54462a
mov eax, esi
call fcn.00540d70
test al, al
jne 0x54462a
mov eax, esi
call fcn.00540d8c
sub al, 2
jb 0x544623
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0053425c
dec eax
jne 0x54462a
mov eax, esi
call fcn.00405180
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
call fcn.0053d44c
test al, al
je 0x54466b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
mov eax, dword [eax + 0x30]
call fcn.0053425c
test eax, eax
jne 0x54466b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00541b34
call fcn.00405180
dec ebx
cmp ebx, 0xffffffff
jne 0x5445b7
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.004430fc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x67d794]
call fcn.0040aad4
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.0040543c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x54471f
call fcn.0040453c
test eax, eax
jne 0x5446db
mov ebx, 0x64
jmp 0x5446dd
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.004430fc
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x67d794]
call fcn.0040aad4
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.0040543c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x544769
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00406cb8
ret