Function at 0x475d7c
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 0x476631
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 0x476616
mov eax, dword [ebp - 4]
call fcn.00477b88
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004117a4
xor eax, eax
push ebp
push 0x47660f
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.0041072c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, 0x469df8
call fcn.00405f30
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.00403298
xor eax, eax
push ebp
push 0x4765ef
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.0046e164
add eax, eax
lea eax, [eax + eax*2]
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x475f00
mov eax, dword [ebp - 4]
call fcn.004775a4
cmp dword [eax + 8], 0
jle 0x475e70
mov eax, dword [ebp - 4]
call fcn.004775a4
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
mov edi, eax
dec edi
test edi, edi
jl 0x475f00
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x475efc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
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.0041072c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, 0x469df8
call fcn.00405f30
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.00403298
inc esi
dec edi
jne 0x475e85
test byte [ebp - 5], 4
je 0x47610e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
mov edi, eax
dec edi
test edi, edi
jl 0x475fe7
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
cmp byte [eax + 0x34], 0
je 0x475fdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x38]
call fcn.00473c10
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00475d64
test al, al
jne 0x475fdf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x38]
xor edx, edx
call fcn.00473bfc
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.0041072c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, 0x469df8
call fcn.00405f30
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.00403298
inc esi
dec edi
jne 0x475f23
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
mov edi, eax
sub edi, 2
test edi, edi
jl 0x47611e
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
cmp dword [eax + 0x38], 0
je 0x476104
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x38]
call fcn.00473ca8
add al, 0xfe
sub al, 2
jae 0x476104
lea edx, [esi + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00474720
cmp byte [eax + 0x34], 0
jne 0x476104
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
lea edx, [ebp - 0x20]
call fcn.00471618
lea edx, [esi + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00474720
lea edx, [ebp - 0x30]
call fcn.00471618
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 0x476104
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x4760bb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x38]
xor edx, edx
call fcn.00473cb8
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.0041072c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, 0x469df8
call fcn.00405f30
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.00403298
inc esi
dec edi
jne 0x476002
jmp 0x47611e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x4761ed
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
mov esi, eax
dec esi
cmp esi, 1
jl 0x4761fb
inc dword [ebp - 0xc]
mov ebx, esi
dec ebx
jmp 0x476148
dec ebx
test ebx, ebx
jle 0x476178
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.00474720
cmp dword [eax + 0x38], 0
je 0x476178
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.00474720
mov eax, dword [eax + 0x38]
call fcn.00473ca8
cmp al, 3
je 0x476147
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.00474720
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
pop edx
call fcn.004734d4
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.0041072c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, 0x469df8
call fcn.00405f30
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.00403298
dec esi
test esi, esi
jne 0x47613f
jmp 0x4761fb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
add dword [ebp - 0xc], eax
test byte [ebp - 5], 1
je 0x47633c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
mov esi, eax
dec esi
cmp esi, 0
jl 0x47634a
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
call fcn.004707b4
test al, al
jne 0x476330
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
cmp byte [eax + 0x34], 0
je 0x476330
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x38]
call fcn.00473c90
movzx ebx, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
call fcn.00473174
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
call fcn.004707b4
test al, al
je 0x4762e7
test esi, esi
jle 0x4762da
mov edx, esi
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00474720
cmp byte [eax + 0x34], 0
je 0x4762da
mov edi, esi
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00474720
mov eax, dword [eax + 0x38]
call fcn.00473c90
add ax, bx
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00474720
mov eax, dword [eax + 0x38]
pop edx
call fcn.00473c98
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0046e194
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.0041072c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, 0x469df8
call fcn.00405f30
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.00403298
dec esi
cmp esi, 0xffffffff
jne 0x47621c
jmp 0x47634a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x476572
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
mov esi, eax
dec esi
cmp esi, 0
jl 0x476527
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x30]
call fcn.0046e164
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x476469
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004704fc
mov edx, dword [0x469758]
call fcn.00403234
test al, al
jne 0x476448
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004704fc
mov edx, dword [0x469698]
call fcn.00403234
test al, al
jne 0x476448
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004704fc
mov edx, dword [0x469950]
call fcn.00403234
test al, al
jne 0x476448
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004704fc
mov edx, dword [0x469a24]
call fcn.00403234
test al, al
je 0x47645f
test esi, esi
jg 0x476448
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
dec eax
jne 0x47645f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0046e194
dec ebx
cmp ebx, 0xffffffff
jne 0x47639a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
cmp dword [eax + 0x38], 0
je 0x4764dc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov ebx, dword [eax + 0x38]
mov eax, ebx
call fcn.00473c90
test ax, ax
je 0x4764a6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
dec eax
jne 0x4764dc
mov eax, ebx
call fcn.00473bf4
test al, al
jne 0x4764dc
mov eax, ebx
call fcn.00473ca0
test al, al
jne 0x4764dc
mov eax, ebx
call fcn.00473ca8
sub al, 2
jb 0x4764d5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e164
dec eax
jne 0x4764dc
mov eax, ebx
call fcn.004030bc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
call fcn.004707b4
test al, al
je 0x47651d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
mov eax, dword [eax + 0x30]
call fcn.0046e164
test eax, eax
jne 0x47651d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474720
call fcn.004030bc
dec esi
cmp esi, 0xffffffff
jne 0x476379
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.0041072c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, 0x469df8
call fcn.00405f30
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.00403298
jmp 0x476593
test byte [ebp - 5], 0x10
je 0x476593
cmp byte [ebp - 6], 9
jne 0x476593
lea edx, [ebp - 0x70]
mov eax, 0x469dc0
call fcn.00405f30
mov eax, dword [ebp - 0x70]
call fcn.00469fa8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4765f6
call fcn.0040ba44
test eax, eax
jne 0x4765b0
mov esi, 0x64
jmp 0x4765b2
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.0041072c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, 0x469df8
call fcn.00405f30
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.00403298
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x476638
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00403e48
ret