Function at 0x1c8440
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 0x1c8da6
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 0x1c8d8b
mov eax, dword [ebp - 4]
call fcn.001c9890
xor eax, eax
push ebp
push 0x1c8d79
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.001c9860
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00044c8c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x226348]
call fcn.0001a37c
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.0001519c
xor eax, eax
push ebp
push 0x1c8d5c
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.001b88a4
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x1c85bf
mov eax, dword [ebp - 4]
call fcn.001ca05c
cmp dword [eax + 8], 0
jle 0x1c852f
mov eax, dword [ebp - 4]
call fcn.001ca05c
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
mov edi, eax
dec edi
test edi, edi
jl 0x1c85bf
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x1c85bb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
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.00044c8c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x226348]
call fcn.0001a37c
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.0001519c
inc ebx
dec edi
jne 0x1c8544
test byte [ebp - 5], 4
je 0x1c87d3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
mov edi, eax
dec edi
test edi, edi
jl 0x1c86a9
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
call fcn.001c2b04
test al, al
je 0x1c86a1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x34]
call fcn.001c52d0
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.001c8428
test al, al
jne 0x1c86a1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.001c5270
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.00044c8c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x226348]
call fcn.0001a37c
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.0001519c
inc ebx
dec edi
jne 0x1c85e2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
mov edi, eax
sub edi, 2
test edi, edi
jl 0x1c87e3
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
cmp dword [eax + 0x34], 0
je 0x1c87c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x34]
call fcn.001c53d8
add al, 0xfe
sub al, 2
jae 0x1c87c9
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001c6178
call fcn.001c2b04
test al, al
jne 0x1c87c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
lea edx, [ebp - 0x20]
call fcn.001c27c4
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001c6178
lea edx, [ebp - 0x30]
call fcn.001c27c4
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 0x1c87c9
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x1c8780
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.001c53e8
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.00044c8c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x226348]
call fcn.0001a37c
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.0001519c
inc ebx
dec edi
jne 0x1c86c4
jmp 0x1c87e3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x1c88b6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x1c88c4
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x1c880d
dec esi
test esi, esi
jle 0x1c883d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.001c6178
cmp dword [eax + 0x34], 0
je 0x1c883d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.001c6178
mov eax, dword [eax + 0x34]
call fcn.001c53d8
cmp al, 3
je 0x1c880c
test esi, esi
jl 0x1c8862
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.001c6178
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
pop edx
call fcn.001c4884
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.00044c8c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x226348]
call fcn.0001a37c
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.0001519c
dec ebx
test ebx, ebx
jne 0x1c8804
jmp 0x1c88c4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x1c8a77
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x1c8a2e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x30]
call fcn.001b88a4
mov esi, eax
dec esi
cmp esi, 0
jl 0x1c89e3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.001c177c
mov edx, dword [0x1b55a8]
call fcn.0001512c
test al, al
jne 0x1c89c2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.001c177c
mov edx, dword [0x1b5104]
call fcn.0001512c
test al, al
jne 0x1c89c2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.001c177c
mov edx, dword [0x1b5dc0]
call fcn.0001512c
test al, al
jne 0x1c89c2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.001c177c
mov edx, dword [0x1b5f4c]
call fcn.0001512c
test al, al
je 0x1c89d9
test ebx, ebx
jg 0x1c89c2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
dec eax
jne 0x1c89d9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.001b88ec
dec esi
cmp esi, 0xffffffff
jne 0x1c8914
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
call fcn.001c1a98
test al, al
je 0x1c8a24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x30]
call fcn.001b88a4
test eax, eax
jne 0x1c8a24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
call fcn.00014f10
dec ebx
cmp ebx, 0xffffffff
jne 0x1c88f3
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.00044c8c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x226348]
call fcn.0001a37c
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.0001519c
test byte [ebp - 5], 1
je 0x1c8bbe
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x1c8bcc
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
call fcn.001c1a98
test al, al
jne 0x1c8bb2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
call fcn.001c2b04
test al, al
je 0x1c8bb2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x34]
call fcn.001c53ac
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
call fcn.001c44cc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
call fcn.001c1a98
test al, al
je 0x1c8b69
test ebx, ebx
jle 0x1c8b5c
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001c6178
call fcn.001c2b04
test al, al
je 0x1c8b5c
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001c6178
mov eax, dword [eax + 0x34]
call fcn.001c53ac
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001c6178
mov eax, dword [eax + 0x34]
pop edx
call fcn.001c53b4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001b88ec
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.00044c8c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x226348]
call fcn.0001a37c
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.0001519c
dec ebx
cmp ebx, 0xffffffff
jne 0x1c8a98
jmp 0x1c8bcc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x1c8d02
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x1c8cb9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
cmp dword [eax + 0x34], 0
je 0x1c8c6e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.001c53ac
test ax, ax
je 0x1c8c38
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
dec eax
jne 0x1c8c6e
mov eax, esi
call fcn.001c5264
test al, al
jne 0x1c8c6e
mov eax, esi
call fcn.001c53bc
test al, al
jne 0x1c8c6e
mov eax, esi
call fcn.001c53d8
sub al, 2
jb 0x1c8c67
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.001b88a4
dec eax
jne 0x1c8c6e
mov eax, esi
call fcn.00014f10
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
call fcn.001c1a98
test al, al
je 0x1c8caf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
mov eax, dword [eax + 0x30]
call fcn.001b88a4
test eax, eax
jne 0x1c8caf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.001c6178
call fcn.00014f10
dec ebx
cmp ebx, 0xffffffff
jne 0x1c8bfb
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.00044c8c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x226348]
call fcn.0001a37c
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.0001519c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x1c8d63
call fcn.0001434c
test eax, eax
jne 0x1c8d1f
mov ebx, 0x64
jmp 0x1c8d21
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.00044c8c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x226348]
call fcn.0001a37c
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.0001519c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x1c8dad
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00016c54
ret