Function at 0x451870
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x4f4f14
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x52e028]
xor eax, esp
push eax
lea eax, [esp + 0x1c]
mov dword fs:[0], eax
mov edi, ecx
mov ebx, edx
mov eax, dword [esp + 0x30]
mov ecx, eax
and eax, 0xfff0
mov dword [esp + 0x14], eax
mov eax, edi
cdq
sub eax, edx
and ecx, 0xf
mov esi, eax
sar esi, 1
mov dword [esp + 0x18], ecx
je 0x451d5c
xor ecx, ecx
mov eax, esi
mov edx, 0xc
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004ef3ea
add esp, 4
cmp edi, 4
mov ebp, eax
jl 0x4518fb
mov eax, dword [ebx]
mov dword [ebp], eax
mov ecx, dword [ebx + 4]
mov dword [ebp + 4], ecx
mov edx, dword [ebx + 8]
mov dword [ebp + 0xc], edx
mov eax, dword [ebx + 0xc]
mov dword [ebp + 0x10], eax
jmp 0x451913
cmp edi, 2
jl 0x451d5c
mov ecx, dword [ebx]
mov dword [ebp], ecx
mov edx, dword [ebx + 4]
mov dword [ebp + 4], edx
mov byte [ebp + 8], 0x64
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 4]
xor edi, edi
cmp ecx, edi
je 0x45192b
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov dword [ebx + 4], edi
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x30], 1
cmp eax, 0x90
ja case.0x45194c.17
movzx eax, byte [eax + 0x451da0]
jmp dword [eax*4 + 0x451d74]
cmp esi, 1
jae 0x451961
mov dword [esp + 0x30], edi
jmp 0x451cba
push 0x10
call fcn.004ef114
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], edi
cmp eax, edi
je 0x45197f
push eax
call fcn.0044f690
mov edi, eax
mov dword [esp + 0x24], 0xffffffff
push 2
mov esi, 1
push ebp
mov byte [ebp + 8], 0x64
call fcn.0044f980
mov dword [ebx + 4], edi
xor edi, edi
jmp 0x451cba
cmp esi, 1
jae 0x4519b0
mov dword [esp + 0x30], edi
jmp 0x451cba
push 0x10
call fcn.004ef114
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], 1
cmp eax, edi
je 0x4519d2
push eax
call fcn.0044f690
mov edi, eax
mov dword [esp + 0x24], 0xffffffff
push 1
jmp 0x451989
cmp esi, 2
jae 0x4519ec
mov dword [esp + 0x30], edi
jmp 0x451cba
push 0x10
call fcn.004ef114
add esp, 4
mov dword [esp + 0x2c], eax
mov esi, 2
mov dword [esp + 0x24], esi
cmp eax, edi
je 0x451a0f
push eax
call fcn.0044f690
mov edi, eax
mov dword [esp + 0x24], 0xffffffff
push esi
push ebp
mov byte [ebp + 8], 0x1e
mov byte [ebp + 0x14], 0x46
call fcn.0044f980
mov dword [ebx + 4], edi
xor edi, edi
jmp 0x451cba
cmp esi, 2
jae 0x451a3e
mov dword [esp + 0x30], edi
jmp 0x451cba
push 0x10
call fcn.004ef114
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], 3
cmp eax, edi
je 0x451a60
push eax
call fcn.0044f690
mov edi, eax
mov dword [esp + 0x24], 0xffffffff
push 1
mov esi, 2
push ebp
mov byte [ebp + 8], 0x1e
mov byte [ebp + 0x14], 0x46
call fcn.0044f980
mov dword [ebx + 4], edi
xor edi, edi
jmp 0x451cba
cmp esi, 2
jae 0x451a95
mov dword [esp + 0x30], edi
jmp 0x451cba
push 0x10
call fcn.004ef114
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], 4
cmp eax, edi
je 0x451ab7
push eax
call fcn.0044f690
mov edi, eax
mov dword [esp + 0x24], 0xffffffff
push 2
mov esi, 2
push ebp
mov byte [ebp + 8], 0x3c
mov byte [ebp + 0x14], 0x28
call fcn.0044f980
mov dword [ebx + 4], edi
xor edi, edi
jmp 0x451cba
cmp esi, 2
jae 0x451aec
mov dword [esp + 0x30], edi
jmp 0x451cba
push 0x10
call fcn.004ef114
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], 5
cmp eax, edi
je 0x451b0e
push eax
call fcn.0044f690
mov edi, eax
mov dword [esp + 0x24], 0xffffffff
push 1
mov esi, 2
push ebp
mov byte [ebp + 8], 0x3c
mov byte [ebp + 0x14], 0x28
call fcn.0044f980
mov dword [ebx + 4], edi
xor edi, edi
jmp 0x451cba
cmp esi, 2
jae 0x451b43
mov dword [esp + 0x30], edi
jmp 0x451cba
push 0x10
call fcn.004ef114
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], 6
cmp eax, edi
je 0x451b65
push eax
call fcn.0044f690
mov edi, eax
mov dword [esp + 0x24], 0xffffffff
push 2
mov esi, 2
push ebp
mov byte [ebp + 8], 0x28
mov byte [ebp + 0x14], 0x3c
call fcn.0044f980
mov dword [ebx + 4], edi
xor edi, edi
jmp 0x451cba
cmp esi, 2
jae 0x451b9a
mov dword [esp + 0x30], edi
jmp 0x451cba
push 0x10
call fcn.004ef114
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], 7
cmp eax, edi
je 0x451bbc
push eax
call fcn.0044f690
mov edi, eax
mov dword [esp + 0x24], 0xffffffff
push 1
mov esi, 2
push ebp
mov byte [ebp + 8], 0x28
mov byte [ebp + 0x14], 0x3c
call fcn.0044f980
mov dword [ebx + 4], edi
xor edi, edi
jmp 0x451cba
cmp esi, 2
jae 0x451bf1
mov dword [esp + 0x30], edi
jmp 0x451cba
push 0x10
call fcn.004ef114
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], 8
cmp eax, edi
je 0x451c13
push eax
call fcn.0044f690
mov edi, eax
mov dword [esp + 0x24], 0xffffffff
mov al, 0x32
push 2
mov esi, 2
push ebp
mov byte [ebp + 8], al
mov byte [ebp + 0x14], al
call fcn.0044f980
mov dword [ebx + 4], edi
xor edi, edi
jmp 0x451cba
cmp esi, 2
jae 0x451c45
mov dword [esp + 0x30], edi
jmp 0x451cba
push 0x10
call fcn.004ef114
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], 9
cmp eax, edi
je 0x451c67
push eax
call fcn.0044f690
mov edi, eax
mov dword [esp + 0x24], 0xffffffff
mov al, 0x32
push 1
mov esi, 2
push ebp
mov byte [ebp + 8], al
mov byte [ebp + 0x14], al
call fcn.0044f980
mov dword [ebx + 4], edi
xor edi, edi
jmp 0x451cba
push 4
call fcn.004ef114
add esp, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], 0xa
cmp eax, edi
je 0x451cad
mov dword [eax], vtable.CDrawRect.0
jmp 0x451caf
xor eax, eax
mov dword [esp + 0x24], 0xffffffff
mov dword [ebx + 4], eax
push ebp
call fcn.004ef3e4
add esp, 4
cmp dword [esp + 0x30], edi
je 0x451d5c
mov ecx, dword [ebx + 8]
xor esi, esi
cmp ecx, edi
je 0x451ce1
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [ebx + 8], edi
mov ebp, dword [esp + 0x18]
cmp ebp, edi
je 0x451d17
push 0x10
call fcn.004ef114
add esp, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], 0xb
cmp eax, edi
je 0x451d0b
push eax
call fcn.00451480
jmp 0x451d0d
xor eax, eax
mov dword [esp + 0x24], 0xffffffff
mov esi, eax
mov eax, ebp
sub eax, 1
je 0x451d36
sub eax, 1
je 0x451d2f
sub eax, 1
jne 0x451d41
mov eax, 0xa
jmp 0x451d3b
mov eax, 5
jmp 0x451d3b
mov eax, 2
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
cmp esi, edi
je 0x451d55
mov eax, dword [ebx + 4]
mov dword [ebx + 8], eax
cmp eax, edi
je 0x451d52
mov dword [esi + 4], eax
mov dword [ebx + 4], esi
mov eax, 1
jmp 0x451d5e
xor eax, eax
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 8