Function at 0x4cabee
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5085e2
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x54d894]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x18], ebx
call fcn.0049226c
lea edx, [esp + 0x10]
push edx
lea ecx, [eax + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0x14]
and dword [esp + 0x68], 0
lea edi, [ebx + 4]
push edi
lea ecx, [esp + 0x14]
call fcn.0046f239
cvtss2sd xmm0, xmm0
lea eax, [ebx + 0x7c]
push eax
lea ecx, [esp + 0x14]
addsd xmm0, qword [0x52f378]
movsd qword [esp + 0x38], xmm0
call fcn.0046f239
mov eax, dword [esp + 0x10]
cvtss2sd xmm0, xmm0
addsd xmm0, qword [0x52f378]
movsd qword [esp + 0x2c], xmm0
mov ecx, dword [esp + 0x2c]
cmp ecx, dword [esp + 0x34]
cmovl ecx, dword [esp + 0x34]
push ecx
push ecx
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x14]
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.004dca54
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
pop ecx
pop ecx
fstp dword [esp + 0x2c]
cvttss2si esi, dword [esp + 0x2c]
mov ecx, ebx
call fcn.00490c58
lea ecx, [esi*2 + 0x12c]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x52f098]
cvttss2si eax, xmm0
cmp eax, ecx
cmovl ecx, eax
and dword [esp + 0x1c], 0
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x3c]
call fcn.0046da9c
mov byte [esp + 0x68], 1
lea ecx, [esp + 0x10]
mov eax, dword [esp + 0x10]
movss xmm2, dword [eax + 0x14]
lea eax, [esp + 0x28]
mulss xmm2, dword [0x52f0ec]
push eax
call fcn.0046f007
lea ecx, [esp + 0x2c]
mov byte [esp + 0x68], 2
push ecx
mov ecx, eax
call fcn.0046f1d7
push eax
push edi
lea ecx, [esp + 0x44]
mov byte [esp + 0x70], 3
call fcn.0046dade
lea ecx, [esp + 0x2c]
call fcn.004037f3
lea ecx, [esp + 0x28]
mov byte [esp + 0x68], 1
call fcn.004037f3
xor edi, edi
push edi
lea esi, [ebx + 0x7c]
mov ecx, esi
call fcn.00403ccf
test eax, eax
je 0x4cad91
push esi
mov edx, 0x52e3e8
lea ecx, [esp + 0x30]
call fcn.0042e541
lea ecx, [esp + 0x10]
mov byte [esp + 0x68], 4
push ecx
push eax
lea ecx, [esp + 0x44]
call fcn.0046dade
push ecx
mov ecx, esp
mov byte [esp + 0x6c], 1
mov eax, dword [esp + 0x30]
mov dword [ecx], eax
call fcn.0042db1d
pop ecx
push edi
push 0x1001810
lea eax, [esp + 0x34]
mov ecx, ebx
push eax
call fcn.0049234b
mov esi, dword [esp + 0x58]
dec esi
js 0x4cadc5
mov eax, dword [esp + 0x50]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0xc], 0
je 0x4cadc2
push ecx
push esi
lea ecx, [esp + 0x58]
call fcn.004743d7
dec esi
jns 0x4cadaa
lea ecx, [esp + 0x3c]
call fcn.00425a6e
push ecx
push ecx
xor ecx, ecx
mov edx, esp
test eax, eax
cmovg ecx, eax
mov dword [edx + 4], ecx
push ecx
mov ecx, esp
mov dword [edx], edi
mov eax, dword [esp + 0x38]
mov dword [ecx], eax
lea ecx, [esp + 0x48]
call fcn.0046db87
cmp dword [ebx + 0x94], edi
lea eax, [esp + 0x3c]
movd xmm2, dword [esp + 0x14]
lea edi, [ebx + 0x80]
push 0x50
pop esi
mov dword [esp + 0x34], esi
mov ecx, edi
cvtdq2ps xmm2, xmm2
push eax
jne 0x4cae24
mov dword [esp + 0x48], 0xc
call fcn.00471670
jmp 0x4cae35
mov dword [esp + 0x48], 9
call fcn.00471670
mov dword [esp + 0x1c], esi
cvttss2si eax, dword [ebx + 0x8c]
mov ecx, dword [esp + 0x1c]
mov esi, 0x15e
add ecx, 0x28
add eax, ecx
mov ecx, ebx
cmp eax, esi
cmovg esi, eax
call fcn.00490c58
mov ecx, edi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x52f098]
cvttss2si eax, xmm0
cmp eax, esi
cmovl esi, eax
call fcn.004709ea
mov eax, dword [ebx + 0xec]
cvttss2si ecx, xmm0
push 0x28
pop edi
add ecx, edi
mov dword [esp + 0x2c], ecx
test eax, eax
jle 0x4caea9
mov edx, dword [ebx + 0xe4]
mov ecx, eax
mov eax, dword [edx]
add edi, 0x10
lea edx, [edx + 4]
mov eax, dword [eax + 0x18]
add edi, eax
dec ecx
jne 0x4cae95
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x110]
cmp edi, esi
cmovl edi, esi
add eax, dword [ebx + 0x104]
add eax, dword [ebx + 0xf8]
imul esi, eax, 0x32
add esi, ecx
cmp dword [ebx + 0xec], 0
mov dword [esp + 0x14], esi
jle 0x4caee6
mov eax, dword [ebx + 0xe4]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
add eax, 0x14
add esi, eax
mov dword [esp + 0x14], esi
mov ecx, dword [ebx + 0x11c]
dec ecx
js 0x4caf3d
mov eax, dword [ebx + 0x114]
mov ebx, ecx
lea eax, [eax + ecx*4]
mov dword [esp + 0x1c], eax
mov ecx, dword [eax]
push 0
imul eax, dword [ecx + 0x18], 0x64
cdq
idiv dword [esp + 0x38]
cmp edi, eax
cmovl edi, eax
mov eax, dword [ecx + 0x1c]
add eax, 0xa
add ecx, 4
add esi, eax
call fcn.00403ccf
test eax, eax
je 0x4caf27
add esi, 0x12
mov eax, dword [esp + 0x1c]
sub eax, 4
dec ebx
mov dword [esp + 0x1c], eax
jns 0x4caefe
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x14], esi
mov ecx, dword [ebx + 0x128]
dec ecx
js 0x4caf62
mov eax, dword [ebx + 0x120]
lea edx, [eax + ecx*4]
mov eax, dword [edx]
lea edx, [edx - 4]
mov eax, dword [eax + 0x148]
cmp edi, eax
cmovl edi, eax
dec ecx
jns 0x4caf4f
mov ecx, ebx
call fcn.00490c58
mov ecx, dword [ebx + 0x128]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x52f098]
cvttss2si eax, xmm0
cmp eax, edi
cmovl edi, eax
dec ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], ecx
js 0x4cafdb
movd xmm0, edi
mov edi, dword [esp + 0x14]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x52f0b0]
cvttss2si edx, xmm0
mov dword [esp + 0x34], edx
mov eax, dword [ebx + 0x120]
push edx
mov esi, dword [eax + ecx*4]
mov ecx, esi
call fcn.004ca8b4
mov ecx, dword [esp + 0x1c]
add edi, 0xa
add edi, dword [esi + 0x1c]
dec ecx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
jns 0x4cafad
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x28]
mov ecx, ebx
call fcn.00490c7e
lea esi, [eax - 0x32]
cmp dword [esp + 0x14], esi
cmovl esi, dword [esp + 0x14]
cmp byte [ebp + 8], 0
je 0x4cb002
cmp edi, dword [ebx + 0x18]
cmovl edi, dword [ebx + 0x18]
cmp esi, dword [ebx + 0x1c]
cmovl esi, dword [ebx + 0x1c]
test byte [ebx + 0x68], 2
push esi
push edi
jne 0x4cb019
push dword [ebx + 0x150]
mov ecx, ebx
call fcn.004ce958
jmp 0x4cb04e
mov eax, dword [ebx + 0x1c]
cdq
sub eax, edx
mov ecx, eax
mov eax, esi
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
sub ecx, eax
mov eax, dword [ebx + 0x18]
add ecx, dword [ebx + 0x14]
cdq
push ecx
sub eax, edx
mov ecx, eax
mov eax, edi
cdq
sar ecx, 1
sub eax, edx
sar eax, 1
sub ecx, eax
add ecx, dword [ebx + 0x10]
push ecx
mov ecx, ebx
call fcn.00490e53
push 0xa
pop eax
mov dword [ebx + 0xd4], eax
mov dword [ebx + 0xd8], eax
lea eax, [edi - 0x14]
mov dword [ebx + 0xdc], eax
lea eax, [esi - 0xa]
mov dword [ebx + 0xe0], eax
mov ecx, dword [ebx + 0xec]
dec ecx
push 0xfffffffffffffff0
pop esi
js 0x4cb094
mov eax, dword [ebx + 0xe4]
lea edx, [eax + ecx*4]
mov eax, dword [edx]
add esi, 0x10
lea edx, [edx - 4]
mov eax, dword [eax + 0x18]
add esi, eax
dec ecx
jns 0x4cb084
movd xmm0, dword [ebx + 0x1c]
sub edi, esi
cvtdq2ps xmm0, xmm0
mov eax, edi
cdq
sub eax, edx
xor edx, edx
mov ecx, eax
mov dword [esp + 0x28], edx
sar ecx, 1
mulss xmm0, dword [0x52f0dc]
mov dword [esp + 0x14], ecx
cvttss2si eax, xmm0
mov dword [esp + 0x1c], eax
cmp dword [ebx + 0xec], edx
jle 0x4cb13c
movd xmm0, dword [ebx + 0x1c]
mov eax, dword [ebx + 0xe4]
cvtdq2ps xmm0, xmm0
mov edi, dword [eax + edx*4]
mulss xmm0, dword [0x52f0dc]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x52f378]
movsd qword [esp + 0x34], xmm0
mov esi, dword [esp + 0x34]
sub esi, dword [edi + 0x1c]
push esi
push ecx
mov ecx, edi
call fcn.0049106c
mov eax, dword [esp + 0x1c]
cmp esi, eax
mov ecx, dword [esp + 0x14]
cmovl eax, esi
add ecx, 0x10
add ecx, dword [edi + 0x18]
mov dword [esp + 0x14], ecx
mov ecx, edi
push 0
mov dword [esp + 0x20], eax
call fcn.004909f4
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
inc edx
mov dword [esp + 0x28], edx
cmp edx, dword [ebx + 0xec]
jl 0x4cb0c9
xor ecx, ecx
mov dword [esp + 0x28], ecx
cmp dword [ebx + 0x134], ecx
jle 0x4cb313
mov esi, dword [esp + 0x2c]
mov eax, dword [ebx + 0x12c]
push 0
push 0x55351c
push 0x54f094
mov edi, dword [eax + ecx*4]
push 0
push edi
mov dword [esp + 0x40], 0x16
call fcn.004faa08
mov ecx, dword [ebx + 0x104]
add esp, 0x14
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0xfc]
mov edx, eax
lea ecx, [edx + ecx*4]
jmp 0x4cb1a0
mov ebx, dword [esp + 0x34]
cmp ebx, dword [edx]
mov ebx, dword [esp + 0x18]
je 0x4cb1f5
add edx, 4
cmp edx, ecx
jne 0x4cb191
or edx, 0xffffffff
test edx, edx
js 0x4cb1c7
push 0
push edx
lea ecx, [ebx + 0x144]
call fcn.0042fff8
mov ecx, eax
call fcn.00403ccf
test eax, eax
je 0x4cb1c7
add esi, 0x12
push 0
push 0x55432c
push 0x54f094
push 0
push edi
call fcn.004faa08
mov ecx, dword [ebx + 0xf8]
add esp, 0x14
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 0xf0]
mov edx, eax
lea ecx, [edx + ecx*4]
jmp 0x4cb20b
sub edx, eax
sar edx, 2
jmp 0x4cb1a7
mov ebx, dword [esp + 0x34]
cmp ebx, dword [edx]
mov ebx, dword [esp + 0x18]
je 0x4cb27e
add edx, 4
cmp edx, ecx
jne 0x4cb1fc
or edx, 0xffffffff
test edx, edx
js 0x4cb232
push 0
push edx
lea ecx, [ebx + 0x138]
call fcn.0042fff8
mov ecx, eax
call fcn.00403ccf
test eax, eax
je 0x4cb232
add esi, 0x12
push edi
lea ecx, [ebx + 0x114]
call fcn.0040a5a6
test al, al
je 0x4cb285
push 0
lea ecx, [edi + 4]
call fcn.00403ccf
test eax, eax
je 0x4cb253
add esi, 0x12
movd xmm0, dword [ebx + 0x18]
cvtdq2ps xmm0, xmm0
push esi
mulss xmm0, dword [0x52efdc]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x52f378]
movsd qword [esp + 0x38], xmm0
push dword [esp + 0x38]
jmp 0x4cb359
sub edx, eax
sar edx, 2
jmp 0x4cb212
mov ecx, dword [ebx + 0x120]
mov eax, dword [ebx + 0x128]
lea eax, [ecx + eax*4]
jmp 0x4cb2a1
cmp edi, dword [ecx]
je 0x4cb34c
add ecx, 4
cmp ecx, eax
jne 0x4cb296
movd xmm1, dword [ebx + 0x18]
mov ecx, edi
cvtdq2ps xmm1, xmm1
push 0x16
movaps xmm0, xmm1
mulss xmm1, dword [0x52efdc]
mulss xmm0, dword [0x52f0b0]
cvtss2sd xmm0, xmm0
addsd xmm0, qword [0x52f378]
movsd qword [esp + 0x38], xmm0
push dword [esp + 0x38]
cvtps2pd xmm0, xmm1
push esi
addsd xmm0, qword [0x52f378]
movsd qword [esp + 0x28], xmm0
push dword [esp + 0x28]
call fcn.00490e53
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
add esi, 0xa
add esi, eax
inc ecx
mov dword [esp + 0x28], ecx
cmp ecx, dword [ebx + 0x134]
jl 0x4cb152
cmp dword [ebx + 0x30], 0
lea ecx, [esp + 0x3c]
sete al
shl al, 5
xor al, byte [ebx + 0x68]
and al, 0x20
xor byte [ebx + 0x68], al
call fcn.0046dac0
lea ecx, [esp + 0x10]
call fcn.004037f3
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebx + 0x18]
sub eax, dword [edi + 0x18]
cdq
sub eax, edx
push esi
sar eax, 1
push eax
mov ecx, edi
call fcn.0049106c
mov eax, dword [edi + 0x1c]
jmp 0x4cb2f9