Function at 0x479850
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 0x47a1b6
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 0x47a19b
mov eax, dword [ebp - 4]
call fcn.0047aba0
xor eax, eax
push ebp
push 0x47a189
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.0047ab78
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041ad20
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x53dd00]
call fcn.004073b4
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.004040d8
xor eax, eax
push ebp
push 0x47a16c
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.0046db20
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x4799cf
mov eax, dword [ebp - 4]
call fcn.0047b388
cmp dword [eax + 8], 0
jle 0x47993f
mov eax, dword [ebp - 4]
call fcn.0047b388
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
mov edi, eax
dec edi
test edi, edi
jl 0x4799cf
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x4799cb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
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.0041ad20
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x53dd00]
call fcn.004073b4
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.004040d8
inc ebx
dec edi
jne 0x479954
test byte [ebp - 5], 4
je 0x479be3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
mov edi, eax
dec edi
test edi, edi
jl 0x479ab9
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
call fcn.004756f0
test al, al
je 0x479ab1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x34]
call fcn.00477c68
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00479838
test al, al
jne 0x479ab1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00477c44
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.0041ad20
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x53dd00]
call fcn.004073b4
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.004040d8
inc ebx
dec edi
jne 0x4799f2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
mov edi, eax
sub edi, 2
test edi, edi
jl 0x479bf3
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
cmp dword [eax + 0x34], 0
je 0x479bd9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x34]
call fcn.00477d60
add al, 0xfe
sub al, 2
jae 0x479bd9
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0047881c
call fcn.004756f0
test al, al
jne 0x479bd9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
lea edx, [ebp - 0x20]
call fcn.00475420
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0047881c
lea edx, [ebp - 0x30]
call fcn.00475420
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 0x479bd9
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x479b90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00477d70
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.0041ad20
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x53dd00]
call fcn.004073b4
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.004040d8
inc ebx
dec edi
jne 0x479ad4
jmp 0x479bf3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x479cc6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x479cd4
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x479c1d
dec esi
test esi, esi
jle 0x479c4d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0047881c
cmp dword [eax + 0x34], 0
je 0x479c4d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0047881c
mov eax, dword [eax + 0x34]
call fcn.00477d60
cmp al, 3
je 0x479c1c
test esi, esi
jl 0x479c72
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0047881c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
pop edx
call fcn.00477414
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.0041ad20
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x53dd00]
call fcn.004073b4
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.004040d8
dec ebx
test ebx, ebx
jne 0x479c14
jmp 0x479cd4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x479e87
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x479e3e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x30]
call fcn.0046db20
mov esi, eax
dec esi
cmp esi, 0
jl 0x479df3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00474454
mov edx, dword [0x46ce30]
call fcn.00404068
test al, al
jne 0x479dd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00474454
mov edx, dword [0x46cd7c]
call fcn.00404068
test al, al
jne 0x479dd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00474454
mov edx, dword [0x46d010]
call fcn.00404068
test al, al
jne 0x479dd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00474454
mov edx, dword [0x46d0d4]
call fcn.00404068
test al, al
je 0x479de9
test ebx, ebx
jg 0x479dd2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
dec eax
jne 0x479de9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0046db68
dec esi
cmp esi, 0xffffffff
jne 0x479d24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
call fcn.00474774
test al, al
je 0x479e34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x30]
call fcn.0046db20
test eax, eax
jne 0x479e34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
call fcn.00403edc
dec ebx
cmp ebx, 0xffffffff
jne 0x479d03
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.0041ad20
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x53dd00]
call fcn.004073b4
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.004040d8
test byte [ebp - 5], 1
je 0x479fce
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x479fdc
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
call fcn.00474774
test al, al
jne 0x479fc2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
call fcn.004756f0
test al, al
je 0x479fc2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x34]
call fcn.00477d44
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
call fcn.0047705c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
call fcn.00474774
test al, al
je 0x479f79
test ebx, ebx
jle 0x479f6c
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0047881c
call fcn.004756f0
test al, al
je 0x479f6c
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0047881c
mov eax, dword [eax + 0x34]
call fcn.00477d44
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0047881c
mov eax, dword [eax + 0x34]
pop edx
call fcn.00477d4c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0046db68
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.0041ad20
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x53dd00]
call fcn.004073b4
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.004040d8
dec ebx
cmp ebx, 0xffffffff
jne 0x479ea8
jmp 0x479fdc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x47a112
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x47a0c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
cmp dword [eax + 0x34], 0
je 0x47a07e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00477d44
test ax, ax
je 0x47a048
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
dec eax
jne 0x47a07e
mov eax, esi
call fcn.00477c38
test al, al
jne 0x47a07e
mov eax, esi
call fcn.00477d54
test al, al
jne 0x47a07e
mov eax, esi
call fcn.00477d60
sub al, 2
jb 0x47a077
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0046db20
dec eax
jne 0x47a07e
mov eax, esi
call fcn.00403edc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
call fcn.00474774
test al, al
je 0x47a0bf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
mov eax, dword [eax + 0x30]
call fcn.0046db20
test eax, eax
jne 0x47a0bf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0047881c
call fcn.00403edc
dec ebx
cmp ebx, 0xffffffff
jne 0x47a00b
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.0041ad20
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x53dd00]
call fcn.004073b4
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.004040d8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47a173
call fcn.00403000
test eax, eax
jne 0x47a12f
mov ebx, 0x64
jmp 0x47a131
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.0041ad20
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x53dd00]
call fcn.004073b4
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.004040d8
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47a1bd
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00404ea4
ret