Function at 0x4cd1a4
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 0x4cdb0a
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 0x4cdaef
mov eax, dword [ebp - 4]
call fcn.004ce5f4
xor eax, eax
push ebp
push 0x4cdadd
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.004ce5c4
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.004324f8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x4f38f4]
call fcn.00409e88
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.00405140
xor eax, eax
push ebp
push 0x4cdac0
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.004bd608
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x4cd323
mov eax, dword [ebp - 4]
call fcn.004cedc0
cmp dword [eax + 8], 0
jle 0x4cd293
mov eax, dword [ebp - 4]
call fcn.004cedc0
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
mov edi, eax
dec edi
test edi, edi
jl 0x4cd323
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x4cd31f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
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.004324f8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x4f38f4]
call fcn.00409e88
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.00405140
inc ebx
dec edi
jne 0x4cd2a8
test byte [ebp - 5], 4
je 0x4cd537
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
mov edi, eax
dec edi
test edi, edi
jl 0x4cd40d
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
call fcn.004c7868
test al, al
je 0x4cd405
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x34]
call fcn.004ca034
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.004cd18c
test al, al
jne 0x4cd405
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.004c9fd4
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.004324f8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x4f38f4]
call fcn.00409e88
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.00405140
inc ebx
dec edi
jne 0x4cd346
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
mov edi, eax
sub edi, 2
test edi, edi
jl 0x4cd547
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
cmp dword [eax + 0x34], 0
je 0x4cd52d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x34]
call fcn.004ca13c
add al, 0xfe
sub al, 2
jae 0x4cd52d
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004caedc
call fcn.004c7868
test al, al
jne 0x4cd52d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
lea edx, [ebp - 0x20]
call fcn.004c7528
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004caedc
lea edx, [ebp - 0x30]
call fcn.004c7528
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 0x4cd52d
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x4cd4e4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.004ca14c
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.004324f8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x4f38f4]
call fcn.00409e88
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.00405140
inc ebx
dec edi
jne 0x4cd428
jmp 0x4cd547
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x4cd61a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x4cd628
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x4cd571
dec esi
test esi, esi
jle 0x4cd5a1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004caedc
cmp dword [eax + 0x34], 0
je 0x4cd5a1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004caedc
mov eax, dword [eax + 0x34]
call fcn.004ca13c
cmp al, 3
je 0x4cd570
test esi, esi
jl 0x4cd5c6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004caedc
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
pop edx
call fcn.004c95e8
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.004324f8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x4f38f4]
call fcn.00409e88
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.00405140
dec ebx
test ebx, ebx
jne 0x4cd568
jmp 0x4cd628
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x4cd7db
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x4cd792
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x30]
call fcn.004bd608
mov esi, eax
dec esi
cmp esi, 0
jl 0x4cd747
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004c64e0
mov edx, dword [0x4ba30c]
call fcn.004050d0
test al, al
jne 0x4cd726
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004c64e0
mov edx, dword [0x4b9e68]
call fcn.004050d0
test al, al
jne 0x4cd726
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004c64e0
mov edx, dword [0x4bab24]
call fcn.004050d0
test al, al
jne 0x4cd726
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004c64e0
mov edx, dword [0x4bacb0]
call fcn.004050d0
test al, al
je 0x4cd73d
test ebx, ebx
jg 0x4cd726
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
dec eax
jne 0x4cd73d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.004bd650
dec esi
cmp esi, 0xffffffff
jne 0x4cd678
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
call fcn.004c67fc
test al, al
je 0x4cd788
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x30]
call fcn.004bd608
test eax, eax
jne 0x4cd788
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
call fcn.00404eb4
dec ebx
cmp ebx, 0xffffffff
jne 0x4cd657
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.004324f8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x4f38f4]
call fcn.00409e88
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.00405140
test byte [ebp - 5], 1
je 0x4cd922
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x4cd930
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
call fcn.004c67fc
test al, al
jne 0x4cd916
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
call fcn.004c7868
test al, al
je 0x4cd916
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x34]
call fcn.004ca110
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
call fcn.004c9230
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
call fcn.004c67fc
test al, al
je 0x4cd8cd
test ebx, ebx
jle 0x4cd8c0
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004caedc
call fcn.004c7868
test al, al
je 0x4cd8c0
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004caedc
mov eax, dword [eax + 0x34]
call fcn.004ca110
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004caedc
mov eax, dword [eax + 0x34]
pop edx
call fcn.004ca118
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004bd650
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.004324f8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x4f38f4]
call fcn.00409e88
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.00405140
dec ebx
cmp ebx, 0xffffffff
jne 0x4cd7fc
jmp 0x4cd930
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x4cda66
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x4cda1d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
cmp dword [eax + 0x34], 0
je 0x4cd9d2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.004ca110
test ax, ax
je 0x4cd99c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
dec eax
jne 0x4cd9d2
mov eax, esi
call fcn.004c9fc8
test al, al
jne 0x4cd9d2
mov eax, esi
call fcn.004ca120
test al, al
jne 0x4cd9d2
mov eax, esi
call fcn.004ca13c
sub al, 2
jb 0x4cd9cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004bd608
dec eax
jne 0x4cd9d2
mov eax, esi
call fcn.00404eb4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
call fcn.004c67fc
test al, al
je 0x4cda13
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
mov eax, dword [eax + 0x30]
call fcn.004bd608
test eax, eax
jne 0x4cda13
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004caedc
call fcn.00404eb4
dec ebx
cmp ebx, 0xffffffff
jne 0x4cd95f
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.004324f8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x4f38f4]
call fcn.00409e88
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.00405140
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cdac7
call fcn.004042c8
test eax, eax
jne 0x4cda83
mov ebx, 0x64
jmp 0x4cda85
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.004324f8
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x4f38f4]
call fcn.00409e88
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.00405140
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cdb11
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00406a54
ret