Function at 0x475d64
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 0x476619
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 0x4765fe
mov eax, dword [ebp - 4]
call fcn.00477b70
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.004117a4
xor eax, eax
push ebp
push 0x4765f7
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, 0x469de0
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 0x4765d7
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.0046e14c
add eax, eax
lea eax, [eax + eax*2]
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x475ee8
mov eax, dword [ebp - 4]
call fcn.0047758c
cmp dword [eax + 8], 0
jle 0x475e58
mov eax, dword [ebp - 4]
call fcn.0047758c
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
mov edi, eax
dec edi
test edi, edi
jl 0x475ee8
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x475ee4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
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, 0x469de0
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 0x475e6d
test byte [ebp - 5], 4
je 0x4760f6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
mov edi, eax
dec edi
test edi, edi
jl 0x475fcf
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
cmp byte [eax + 0x34], 0
je 0x475fc7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x38]
call fcn.00473bf8
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00475d4c
test al, al
jne 0x475fc7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x38]
xor edx, edx
call fcn.00473be4
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, 0x469de0
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 0x475f0b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
mov edi, eax
sub edi, 2
test edi, edi
jl 0x476106
inc edi
xor esi, esi
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
cmp dword [eax + 0x38], 0
je 0x4760ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x38]
call fcn.00473c90
add al, 0xfe
sub al, 2
jae 0x4760ec
lea edx, [esi + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00474708
cmp byte [eax + 0x34], 0
jne 0x4760ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
lea edx, [ebp - 0x20]
call fcn.00471600
lea edx, [esi + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00474708
lea edx, [ebp - 0x30]
call fcn.00471600
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 0x4760ec
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.user32.dll_EqualRect
test eax, eax
je 0x4760a3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x38]
xor edx, edx
call fcn.00473ca0
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, 0x469de0
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 0x475fea
jmp 0x476106
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x4761d5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
mov esi, eax
dec esi
cmp esi, 1
jl 0x4761e3
inc dword [ebp - 0xc]
mov ebx, esi
dec ebx
jmp 0x476130
dec ebx
test ebx, ebx
jle 0x476160
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.00474708
cmp dword [eax + 0x38], 0
je 0x476160
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.00474708
mov eax, dword [eax + 0x38]
call fcn.00473c90
cmp al, 3
je 0x47612f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, ebx
call fcn.00474708
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
pop edx
call fcn.004734bc
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, 0x469de0
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 0x476127
jmp 0x4761e3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 1
je 0x476324
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
mov esi, eax
dec esi
cmp esi, 0
jl 0x476332
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
call fcn.0047079c
test al, al
jne 0x476318
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
cmp byte [eax + 0x34], 0
je 0x476318
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x38]
call fcn.00473c78
movzx ebx, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
call fcn.0047315c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
call fcn.0047079c
test al, al
je 0x4762cf
test esi, esi
jle 0x4762c2
mov edx, esi
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00474708
cmp byte [eax + 0x34], 0
je 0x4762c2
mov edi, esi
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00474708
mov eax, dword [eax + 0x38]
call fcn.00473c78
add ax, bx
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00474708
mov eax, dword [eax + 0x38]
pop edx
call fcn.00473c80
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.0046e17c
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, 0x469de0
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 0x476204
jmp 0x476332
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x47655a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
mov esi, eax
dec esi
cmp esi, 0
jl 0x47650f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x30]
call fcn.0046e14c
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x476451
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004704e4
mov edx, dword [0x469740]
call fcn.00403234
test al, al
jne 0x476430
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004704e4
mov edx, dword [0x469680]
call fcn.00403234
test al, al
jne 0x476430
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004704e4
mov edx, dword [0x469938]
call fcn.00403234
test al, al
jne 0x476430
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.004704e4
mov edx, dword [0x469a0c]
call fcn.00403234
test al, al
je 0x476447
test esi, esi
jg 0x476430
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
dec eax
jne 0x476447
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0046e17c
dec ebx
cmp ebx, 0xffffffff
jne 0x476382
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
cmp dword [eax + 0x38], 0
je 0x4764c4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov ebx, dword [eax + 0x38]
mov eax, ebx
call fcn.00473c78
test ax, ax
je 0x47648e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
dec eax
jne 0x4764c4
mov eax, ebx
call fcn.00473bdc
test al, al
jne 0x4764c4
mov eax, ebx
call fcn.00473c88
test al, al
jne 0x4764c4
mov eax, ebx
call fcn.00473c90
sub al, 2
jb 0x4764bd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0046e14c
dec eax
jne 0x4764c4
mov eax, ebx
call fcn.004030bc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
call fcn.0047079c
test al, al
je 0x476505
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
mov eax, dword [eax + 0x30]
call fcn.0046e14c
test eax, eax
jne 0x476505
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, esi
call fcn.00474708
call fcn.004030bc
dec esi
cmp esi, 0xffffffff
jne 0x476361
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, 0x469de0
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 0x47657b
test byte [ebp - 5], 0x10
je 0x47657b
cmp byte [ebp - 6], 9
jne 0x47657b
lea edx, [ebp - 0x70]
mov eax, 0x469da8
call fcn.00405f30
mov eax, dword [ebp - 0x70]
call fcn.00469f90
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4765de
call fcn.0040ba44
test eax, eax
jne 0x476598
mov esi, 0x64
jmp 0x47659a
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, 0x469de0
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 0x476620
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00403e48
ret