Function at 0x5c571c
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 0x5c6082
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 0x5c6067
mov eax, dword [ebp - 4]
call fcn.005c6b6c
xor eax, eax
push ebp
push 0x5c6055
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.005c6b3c
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00446e18
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x6ffb70]
call fcn.0040ae2c
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.004054ec
xor eax, eax
push ebp
push 0x5c6038
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.005b58d0
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x5c589b
mov eax, dword [ebp - 4]
call fcn.005c7338
cmp dword [eax + 8], 0
jle 0x5c580b
mov eax, dword [ebp - 4]
call fcn.005c7338
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
mov edi, eax
dec edi
test edi, edi
jl 0x5c589b
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x5c5897
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
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.00446e18
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x6ffb70]
call fcn.0040ae2c
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.004054ec
inc ebx
dec edi
jne 0x5c5820
test byte [ebp - 5], 4
je 0x5c5aaf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
mov edi, eax
dec edi
test edi, edi
jl 0x5c5985
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
call fcn.005bfdac
test al, al
je 0x5c597d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x34]
call fcn.005c2580
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.005c5704
test al, al
jne 0x5c597d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005c2520
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.00446e18
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x6ffb70]
call fcn.0040ae2c
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.004054ec
inc ebx
dec edi
jne 0x5c58be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
mov edi, eax
sub edi, 2
test edi, edi
jl 0x5c5abf
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
cmp dword [eax + 0x34], 0
je 0x5c5aa5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x34]
call fcn.005c2688
add al, 0xfe
sub al, 2
jae 0x5c5aa5
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005c3430
call fcn.005bfdac
test al, al
jne 0x5c5aa5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
lea edx, [ebp - 0x20]
call fcn.005bf9b4
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005c3430
lea edx, [ebp - 0x30]
call fcn.005bf9b4
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 0x5c5aa5
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x5c5a5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.005c2698
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.00446e18
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x6ffb70]
call fcn.0040ae2c
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.004054ec
inc ebx
dec edi
jne 0x5c59a0
jmp 0x5c5abf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x5c5b92
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x5c5ba0
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x5c5ae9
dec esi
test esi, esi
jle 0x5c5b19
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005c3430
cmp dword [eax + 0x34], 0
je 0x5c5b19
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005c3430
mov eax, dword [eax + 0x34]
call fcn.005c2688
cmp al, 3
je 0x5c5ae8
test esi, esi
jl 0x5c5b3e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005c3430
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
pop edx
call fcn.005c1b20
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.00446e18
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x6ffb70]
call fcn.0040ae2c
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.004054ec
dec ebx
test ebx, ebx
jne 0x5c5ae0
jmp 0x5c5ba0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5c5d53
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5c5d0a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x30]
call fcn.005b58d0
mov esi, eax
dec esi
cmp esi, 0
jl 0x5c5cbf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005be964
mov edx, dword [0x5b2430]
call fcn.0040544c
test al, al
jne 0x5c5c9e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005be964
mov edx, dword [0x5b1f78]
call fcn.0040544c
test al, al
jne 0x5c5c9e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005be964
mov edx, dword [0x5b2c74]
call fcn.0040544c
test al, al
jne 0x5c5c9e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005be964
mov edx, dword [0x5b2e14]
call fcn.0040544c
test al, al
je 0x5c5cb5
test ebx, ebx
jg 0x5c5c9e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
dec eax
jne 0x5c5cb5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.005b5918
dec esi
cmp esi, 0xffffffff
jne 0x5c5bf0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
call fcn.005bec88
test al, al
je 0x5c5d00
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x30]
call fcn.005b58d0
test eax, eax
jne 0x5c5d00
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
call fcn.00405190
dec ebx
cmp ebx, 0xffffffff
jne 0x5c5bcf
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.00446e18
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x6ffb70]
call fcn.0040ae2c
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.004054ec
test byte [ebp - 5], 1
je 0x5c5e9a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5c5ea8
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
call fcn.005bec88
test al, al
jne 0x5c5e8e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
call fcn.005bfdac
test al, al
je 0x5c5e8e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x34]
call fcn.005c265c
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
call fcn.005c176c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
call fcn.005bec88
test al, al
je 0x5c5e45
test ebx, ebx
jle 0x5c5e38
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005c3430
call fcn.005bfdac
test al, al
je 0x5c5e38
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005c3430
mov eax, dword [eax + 0x34]
call fcn.005c265c
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005c3430
mov eax, dword [eax + 0x34]
pop edx
call fcn.005c2664
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005b5918
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.00446e18
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x6ffb70]
call fcn.0040ae2c
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.004054ec
dec ebx
cmp ebx, 0xffffffff
jne 0x5c5d74
jmp 0x5c5ea8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x5c5fde
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x5c5f95
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
cmp dword [eax + 0x34], 0
je 0x5c5f4a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.005c265c
test ax, ax
je 0x5c5f14
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
dec eax
jne 0x5c5f4a
mov eax, esi
call fcn.005c2514
test al, al
jne 0x5c5f4a
mov eax, esi
call fcn.005c266c
test al, al
jne 0x5c5f4a
mov eax, esi
call fcn.005c2688
sub al, 2
jb 0x5c5f43
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.005b58d0
dec eax
jne 0x5c5f4a
mov eax, esi
call fcn.00405190
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
call fcn.005bec88
test al, al
je 0x5c5f8b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
mov eax, dword [eax + 0x30]
call fcn.005b58d0
test eax, eax
jne 0x5c5f8b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.005c3430
call fcn.00405190
dec ebx
cmp ebx, 0xffffffff
jne 0x5c5ed7
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.00446e18
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x6ffb70]
call fcn.0040ae2c
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.004054ec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5c603f
call fcn.004045e4
test eax, eax
jne 0x5c5ffb
mov ebx, 0x64
jmp 0x5c5ffd
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.00446e18
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x6ffb70]
call fcn.0040ae2c
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.004054ec
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5c6089
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00406e94
ret