Function at 0x10096ff0
Capabilities:
Get number of processors

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1011779d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xe8
mov eax, dword [0x1013b040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x1022a290]
xorps xmm0, xmm0
mov ecx, dword [eax + 0x30]
mov dl, byte [eax + 0x30]
shr ecx, 0xb
and dl, 1
and cl, 1
cmp dword [0x1022722c], 9
jne 0x100970a0
mov eax, dword [0x1022018c]
mov esi, dword [0x10227220]
add eax, 0xffffff7c
xor eax, 0x5b5c221d
cmp byte [eax + esi], 0
je 0x10097074
test dl, dl
jne 0x10097074
test cl, cl
je 0x100970a0
mov eax, dword [0x10220190]
add eax, 0xffffff7b
xor eax, 0x5b5c221e
movss xmm1, dword [eax + esi]
comiss xmm1, xmm0
jbe 0x100970a0
mov eax, dword [0x1021fe48]
movss xmm0, dword [eax + 0x10]
comiss xmm0, xmm1
ja 0x10097718
mov eax, dword [0x1022a264]
cmp byte [eax], 0
jne 0x100970b2
mov eax, dword [0x1022a260]
mov byte [eax], 0
cmp byte [0x1013ee9c], 0
je 0x1009737e
mov ecx, dword [0x1021fde4]
mov esi, dword [0x1021fe78]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x100970e7
mov eax, dword [esi]
test eax, eax
je 0x100970e7
mov al, byte [eax + 0x20]
test al, al
jne 0x1009737e
test byte [0x10226ba8], 0x40
jne 0x1009737e
cvttss2si edi, dword [0x1013f070]
mov ecx, dword [0x10220010]
cmp dword [0x1022a250], edi
cmovl edi, dword [0x1022a250]
add ecx, 0xffffffdb
xor ecx, 0x5b5c21be
add ecx, dword [0x10226b8c]
cmp dword [0x1022a304], 0
movq xmm0, qword [ecx]
mov eax, dword [ecx + 8]
movq qword [ebp - 0x20], xmm0
mov dword [ebp - 0x18], eax
je 0x1009714e
mov ecx, dword [0x1022a2fc]
mov eax, dword [0x1022a2f8]
dec ecx
and ecx, dword [0x1022a300]
mov ecx, dword [eax + ecx*4]
add ecx, 4
movq xmm0, qword [ecx]
movss xmm2, dword [ebp - 0x20]
mov eax, dword [ecx + 8]
lea ecx, [ebp - 0x20]
movss xmm1, dword [ebp - 0x18]
movq qword [ebp - 0x90], xmm0
movss xmm0, dword [ebp - 0x1c]
subss xmm2, dword [ebp - 0x90]
subss xmm0, dword [ebp - 0x8c]
mov dword [ebp - 0x88], eax
subss xmm1, dword [ebp - 0x88]
push 0x1013ef50
mulss xmm2, xmm2
mov dword [ebp - 0x18], 0
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
movq qword [ebp - 0x20], xmm0
addss xmm2, xmm1
movss dword [ebp - 0x84], xmm2
call fcn.1002cc00
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x1c]
je 0x1009736f
mov ecx, dword [0x102200c0]
mov esi, dword [0x10226b8c]
add ecx, 0xffffffaf
movss xmm2, dword [0x1022a33c]
xor ecx, 0x5b5c21ea
movss xmm4, dword [0x1012f25c]
movsd xmm3, qword [0x1012f140]
mov dword [ebp - 0x94], ecx
mov edx, dword [eax]
test edx, edx
jne 0x1009727c
cmp dword [0x10150b80], edx
jne 0x10097320
mov eax, dword [0x1013eff8]
test eax, eax
je 0x10097357
cmp eax, 1
je 0x1009733c
cmp eax, 2
jne 0x1009732e
mov eax, dword [0x1022a254]
cmp eax, dword [0x10150bb0]
jl 0x10097357
mov ecx, dword [0x1021ff38]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
push edi
mulss xmm0, dword [0x1012f0d8]
cvttss2si eax, xmm0
push eax
call ecx
mov dword [0x10150bb0], eax
add esp, 8
mov eax, dword [0x1022a260]
mov byte [eax], 1
jmp 0x1009735f
cmp edx, 1
jne 0x100972c1
mov ecx, dword [0x10220018]
add ecx, 0xffffffd9
xor ecx, 0x5b5c21c0
movss xmm1, dword [ecx + esi + 4]
movss xmm0, dword [ecx + esi]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10025ca0
comiss xmm0, xmm4
jbe 0x10097320
mov cl, byte [0x10226ba8]
test dl, cl
jne 0x1009721a
jmp 0x100972c7
mov cl, byte [0x10226ba8]
cmp edx, 2
jne 0x100972e3
test byte [0x1022a298], dl
jne 0x1009721a
test cl, 1
je 0x1009721a
jmp 0x10097320
cmp edx, 3
jne 0x100972f8
mov ecx, dword [ebp - 0x94]
cmp byte [ecx + esi], 0
jne 0x1009721a
cmp edx, 4
jne 0x10097320
mov ecx, dword [0x1021fe48]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
movss xmm1, dword [ecx + 0x10]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm3
comisd xmm1, xmm0
jae 0x1009721a
add eax, 4
cmp eax, dword [ebp - 0x1c]
jne 0x10097208
jmp 0x1009736f
cmp eax, 3
jne 0x1009735f
cmp byte [0x10150bac], 0
je 0x10097357
movss xmm0, dword [ebp - 0x84]
comiss xmm0, dword [0x1012f320]
mov eax, dword [0x1022a260]
setae cl
mov byte [eax], cl
jmp 0x1009735f
mov eax, dword [0x1022a260]
mov byte [eax], 0
cmp dword [0x1022a254], edi
jl 0x1009736f
mov eax, dword [0x1022a260]
mov byte [eax], 1
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call fcn.1002cea0
mov ecx, dword [0x10220010]
mov edx, dword [0x10226b8c]
add ecx, 0xffffffdb
xor ecx, 0x5b5c21be
mov byte [0x10226bac], 0
push 0x30
push 0
mov eax, dword [ecx + edx + 8]
movq xmm0, qword [ecx + edx]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x18], eax
mov eax, dword [0x10220018]
add eax, 0xffffffd9
movq qword [ebp - 0xa0], xmm0
xor eax, 0x5b5c21c0
movq xmm0, xmm0
movq qword [ebp - 0x20], xmm0
movq xmm0, qword [eax + edx]
mov eax, dword [eax + edx + 8]
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x5c]
push eax
movq qword [ebp - 0x90], xmm0
mov dword [ebp - 0x24], 0x1012a074
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [0x1021fea4]
xorps xmm0, xmm0
movups xmmword [ebp - 0x80], xmm0
mov dword [ebp - 0x60], 0
add esp, 0xc
movups xmmword [ebp - 0x70], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x84], eax
call dword [ebp - 0x84]
mov eax, dword [0x1021fe48]
movss xmm2, dword [ebp - 0x88]
movss xmm4, dword [ebp - 0x90]
movss xmm3, dword [ebp - 0x8c]
movss xmm1, dword [eax + 0x20]
movss xmm5, dword [ebp - 0xa0]
movaps xmm0, xmm1
movss xmm6, dword [ebp - 0x9c]
fstp dword [ebp - 0x84]
mulss xmm0, dword [ebp - 0x84]
mov dword [ebp - 0xd4], 0
mulss xmm3, xmm1
mov byte [ebp - 0xab], 1
subss xmm2, xmm0
mulss xmm4, xmm1
addss xmm3, dword [ebp - 0x1c]
movss xmm0, dword [ebp - 0x98]
addss xmm4, dword [ebp - 0x20]
mulss xmm2, xmm1
xorps xmm1, xmm1
subss xmm3, xmm6
addss xmm2, dword [ebp - 0x18]
subss xmm4, xmm5
movss dword [ebp - 0xdc], xmm3
mulss xmm3, xmm3
subss xmm2, dword [0x1012f174]
movss dword [ebp - 0xe0], xmm4
mulss xmm4, xmm4
subss xmm2, xmm0
addss xmm3, xmm4
movss dword [ebp - 0xd8], xmm2
mulss xmm2, xmm2
addss xmm3, xmm2
ucomiss xmm3, xmm1
lahf
test ah, 0x44
jp 0x100974ef
mov byte [ebp - 0xab], 0
mov ecx, dword [0x1021fe00]
lea edx, [ebp - 0x80]
push edx
mov dword [ebp - 0xb0], 0
lea edx, [ebp - 0x24]
mov byte [ebp - 0xac], 1
movss dword [ebp - 0xf0], xmm5
movss dword [ebp - 0xec], xmm6
movss dword [ebp - 0xe8], xmm0
mov dword [ebp - 0xe4], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc0], 0
mov eax, dword [ecx]
push edx
push 0x200400b
lea edx, [ebp - 0xf0]
mov eax, dword [eax + 0x14]
push edx
call eax
movss xmm0, dword [ebp - 0x54]
ucomiss xmm0, dword [0x1012f110]
lahf
test ah, 0x44
jnp 0x100975dc
movss xmm0, dword [ebp - 0x60]
comiss xmm0, dword [0x1012f0dc]
jbe 0x100975dc
test byte [0x10226ba8], 1
jne 0x100975dc
cmp byte [0x1013f128], 0
mov byte [0x10226bac], 1
jne 0x100975d4
cmp byte [0x1013ebfc], 0
je 0x100975dc
mov eax, dword [0x1021ff38]
push 0x64
push 0
call eax
add esp, 8
cmp eax, 5
jge 0x100975dc
mov eax, dword [0x1022a260]
mov byte [eax], 1
mov eax, dword [0x1014e060]
cmp eax, 0xffffffff
je 0x1009760e
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x1014f5c0]
test al, al
je 0x1009760e
test byte [0x10226ba8], 1
je 0x1009760e
cmp dword [0x1022a254], 0xe
mov eax, dword [0x1022a260]
setge cl
mov byte [eax], cl
mov eax, dword [0x1022d808]
inc eax
mov dword [0x1022d808], eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x1013f518]
jb 0x10097643
cvttss2si ecx, dword [0x1013f5d4]
mov dword [0x1022d808], 0
mov dword [0x1022d80c], ecx
jmp 0x10097649
mov ecx, dword [0x1022d80c]
test ecx, ecx
jle 0x10097677
cmp byte [0x1013f1b0], 0
je 0x10097677
cmp byte [0x1013f48c], 0
je 0x10097668
cmp dword [0x10150b80], 1
jne 0x10097670
mov eax, dword [0x1022a260]
mov byte [eax], 1
dec ecx
mov dword [0x1022d80c], ecx
cmp byte [0x10226bbe], 0
je 0x10097688
mov eax, dword [0x1022a260]
mov byte [eax], 1
cmp byte [0x1013f238], 0
je 0x100976f7
mov eax, dword [0x10220018]
add eax, 0xffffffd9
xor eax, 0x5b5c21c0
add eax, dword [0x10226b8c]
movss xmm2, dword [eax + 4]
movss xmm0, dword [eax]
movss xmm1, dword [eax + 8]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm0, xmm2
addss xmm0, xmm1
call fcn.10025ca0
comiss xmm0, dword [0x1012f2e8]
jbe 0x100976f7
test byte [0x10226ba8], 1
jne 0x100976f7
cmp byte [0x10226bac], 0
jne 0x100976f7
cmp dword [0x1022a254], 0xe
mov eax, dword [0x1022a260]
setge cl
mov byte [eax], cl
mov eax, dword [0x1022a254]
cmp eax, 0xe
jl 0x10097708
mov byte [0x1022723c], 0
cmp eax, dword [0x1022a250]
jl 0x10097718
mov eax, dword [0x1022a260]
mov byte [eax], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1010d3ac
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret