Function at 0x47de54
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 - 6], cl
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x47e709
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 0x47e6ee
mov eax, dword [ebp - 4]
call fcn.0047fc60
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00410bdc
xor eax, eax
push ebp
push 0x47e6e7
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040fcb0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, 0x471ed0
call fcn.00405c40
mov eax, dword [ebp - 0x54]
push eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403078
xor eax, eax
push ebp
push 0x47e6c7
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 + 0x24]
call fcn.0047623c
add eax, eax
lea eax, [eax + eax*2]
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x47dfd8
mov eax, dword [ebp - 4]
call fcn.0047f67c
cmp dword [eax + 8], 0
jle 0x47df48
mov eax, dword [ebp - 4]
call fcn.0047f67c
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
mov edi, eax
dec edi
test edi, edi
jl 0x47dfd8
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x47dfd4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
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.0040fcb0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, 0x471ed0
call fcn.00405c40
mov eax, dword [ebp - 0x58]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403078
inc esi
dec edi
jne 0x47df5d
test byte [ebp - 5], 4
je 0x47e1e6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
mov edi, eax
dec edi
test edi, edi
jl 0x47e0bf
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
cmp byte [eax + 0x34], 0
je 0x47e0b7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x38]
call fcn.0047bce8
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.0047de3c
test al, al
jne 0x47e0b7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x38]
xor edx, edx
call fcn.0047bcd4
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.0040fcb0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, 0x471ed0
call fcn.00405c40
mov eax, dword [ebp - 0x5c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403078
inc esi
dec edi
jne 0x47dffb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
mov edi, eax
sub edi, 2
test edi, edi
jl 0x47e1f6
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
cmp dword [eax + 0x38], 0
je 0x47e1dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x38]
call fcn.0047bd80
add al, 0xfe
sub al, 2
jae 0x47e1dc
lea edx, [esi + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047c7f8
cmp byte [eax + 0x34], 0
jne 0x47e1dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
lea edx, [ebp - 0x20]
call fcn.004796f0
lea edx, [esi + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047c7f8
lea edx, [ebp - 0x30]
call fcn.004796f0
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 0x47e1dc
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x47e193
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x38]
xor edx, edx
call fcn.0047bd90
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.0040fcb0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, 0x471ed0
call fcn.00405c40
mov eax, dword [ebp - 0x60]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403078
inc esi
dec edi
jne 0x47e0da
jmp 0x47e1f6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x47e2c5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
mov esi, eax
dec esi
cmp esi, 1
jl 0x47e2d3
inc dword [ebp - 0xc]
mov ebx, esi
dec ebx
jmp 0x47e220
dec ebx
test ebx, ebx
jle 0x47e250
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.0047c7f8
cmp dword [eax + 0x38], 0
je 0x47e250
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.0047c7f8
mov eax, dword [eax + 0x38]
call fcn.0047bd80
cmp al, 3
je 0x47e21f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.0047c7f8
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
pop edx
call fcn.0047b5ac
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.0040fcb0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, 0x471ed0
call fcn.00405c40
mov eax, dword [ebp - 0x64]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403078
dec esi
test esi, esi
jne 0x47e217
jmp 0x47e2d3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 1
je 0x47e414
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
mov esi, eax
dec esi
cmp esi, 0
jl 0x47e422
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
call fcn.0047888c
test al, al
jne 0x47e408
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
cmp byte [eax + 0x34], 0
je 0x47e408
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x38]
call fcn.0047bd68
movzx ebx, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
call fcn.0047b24c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
call fcn.0047888c
test al, al
je 0x47e3bf
test esi, esi
jle 0x47e3b2
mov edx, esi
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047c7f8
cmp byte [eax + 0x34], 0
je 0x47e3b2
mov edi, esi
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047c7f8
mov eax, dword [eax + 0x38]
call fcn.0047bd68
add ax, bx
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047c7f8
mov eax, dword [eax + 0x38]
pop edx
call fcn.0047bd70
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047626c
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.0040fcb0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, 0x471ed0
call fcn.00405c40
mov eax, dword [ebp - 0x68]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403078
dec esi
cmp esi, 0xffffffff
jne 0x47e2f4
jmp 0x47e422
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x47e64a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
mov esi, eax
dec esi
cmp esi, 0
jl 0x47e5ff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x30]
call fcn.0047623c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x47e541
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004785d4
mov edx, dword [0x471830]
call fcn.00403014
test al, al
jne 0x47e520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004785d4
mov edx, dword [0x471770]
call fcn.00403014
test al, al
jne 0x47e520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004785d4
mov edx, dword [0x471a28]
call fcn.00403014
test al, al
jne 0x47e520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004785d4
mov edx, dword [0x471afc]
call fcn.00403014
test al, al
je 0x47e537
test esi, esi
jg 0x47e520
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
dec eax
jne 0x47e537
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047626c
dec ebx
cmp ebx, 0xffffffff
jne 0x47e472
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
cmp dword [eax + 0x38], 0
je 0x47e5b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov ebx, dword [eax + 0x38]
mov eax, ebx
call fcn.0047bd68
test ax, ax
je 0x47e57e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
dec eax
jne 0x47e5b4
mov eax, ebx
call fcn.0047bccc
test al, al
jne 0x47e5b4
mov eax, ebx
call fcn.0047bd78
test al, al
jne 0x47e5b4
mov eax, ebx
call fcn.0047bd80
sub al, 2
jb 0x47e5ad
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0047623c
dec eax
jne 0x47e5b4
mov eax, ebx
call fcn.00402e9c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
call fcn.0047888c
test al, al
je 0x47e5f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
mov eax, dword [eax + 0x30]
call fcn.0047623c
test eax, eax
jne 0x47e5f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0047c7f8
call fcn.00402e9c
dec esi
cmp esi, 0xffffffff
jne 0x47e451
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.0040fcb0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, 0x471ed0
call fcn.00405c40
mov eax, dword [ebp - 0x6c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403078
jmp 0x47e66b
test byte [ebp - 5], 0x10
je 0x47e66b
cmp byte [ebp - 6], 9
jne 0x47e66b
lea edx, [ebp - 0x70]
mov eax, 0x471e98
call fcn.00405c40
mov eax, dword [ebp - 0x70]
call fcn.00472080
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47e6ce
call fcn.0040b3f8
test eax, eax
jne 0x47e688
mov esi, 0x64
jmp 0x47e68a
xor esi, esi
mov eax, esi
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0040fcb0
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, 0x471ed0
call fcn.00405c40
mov eax, dword [ebp - 0x74]
push eax
mov cl, 2
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov bx, 0xfffd
call fcn.00403078
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47e710
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00403be8
ret