Function at 0x10097670
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 0x101188ed
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xe8
mov eax, dword [0x1013d040]
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 [0x1022c7e0]
xorps xmm0, xmm0
mov ecx, dword [eax + 0x30]
mov dl, byte [eax + 0x30]
shr ecx, 0xb
and dl, 1
and cl, 1
cmp dword [0x1022977c], 9
jne 0x10097720
mov eax, dword [0x102226dc]
mov esi, dword [0x10229770]
add eax, 0xffffff7c
xor eax, 0x5b5c221d
cmp byte [eax + esi], 0
je 0x100976f4
test dl, dl
jne 0x100976f4
test cl, cl
je 0x10097720
mov eax, dword [0x102226e0]
add eax, 0xffffff7b
xor eax, 0x5b5c221e
movss xmm1, dword [eax + esi]
comiss xmm1, xmm0
jbe 0x10097720
mov eax, dword [0x10222398]
movss xmm0, dword [eax + 0x10]
comiss xmm0, xmm1
ja 0x10097daa
mov eax, dword [0x1022c7b4]
cmp byte [eax], 0
jne 0x10097732
mov eax, dword [0x1022c7b0]
mov byte [eax], 0
cmp byte [0x10140f1c], 0
je 0x100979fe
mov ecx, dword [0x10222334]
mov esi, dword [0x102223c8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10097767
mov eax, dword [esi]
test eax, eax
je 0x10097767
mov al, byte [eax + 0x20]
test al, al
jne 0x100979fe
test byte [0x102290f8], 0x40
jne 0x100979fe
cvttss2si edi, dword [0x101410f0]
mov ecx, dword [0x10222560]
cmp dword [0x1022c7a0], edi
cmovl edi, dword [0x1022c7a0]
add ecx, 0xffffffdb
xor ecx, 0x5b5c21be
add ecx, dword [0x102290dc]
cmp dword [0x1022c854], 0
movq xmm0, qword [ecx]
mov eax, dword [ecx + 8]
movq qword [ebp - 0x20], xmm0
mov dword [ebp - 0x18], eax
je 0x100977ce
mov ecx, dword [0x1022c84c]
mov eax, dword [0x1022c848]
dec ecx
and ecx, dword [0x1022c850]
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 0x10140fd0
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.1002db00
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x1c]
je 0x100979ef
mov ecx, dword [0x10222610]
mov esi, dword [0x102290dc]
add ecx, 0xffffffaf
movss xmm2, dword [0x1022c88c]
xor ecx, 0x5b5c21ea
movss xmm4, dword [0x1013132c]
movsd xmm3, qword [0x10131208]
mov dword [ebp - 0x94], ecx
mov edx, dword [eax]
test edx, edx
jne 0x100978fc
cmp dword [0x101530d0], edx
jne 0x100979a0
mov eax, dword [0x10141078]
test eax, eax
je 0x100979d7
cmp eax, 1
je 0x100979bc
cmp eax, 2
jne 0x100979ae
mov eax, dword [0x1022c7a4]
cmp eax, dword [0x10153100]
jl 0x100979d7
mov ecx, dword [0x10222488]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
push edi
mulss xmm0, dword [0x10131198]
cvttss2si eax, xmm0
push eax
call ecx
mov dword [0x10153100], eax
add esp, 8
mov eax, dword [0x1022c7b0]
mov byte [eax], 1
jmp 0x100979df
cmp edx, 1
jne 0x10097941
mov ecx, dword [0x10222568]
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.10026490
comiss xmm0, xmm4
jbe 0x100979a0
mov cl, byte [0x102290f8]
test dl, cl
jne 0x1009789a
jmp 0x10097947
mov cl, byte [0x102290f8]
cmp edx, 2
jne 0x10097963
test byte [0x1022c7e8], dl
jne 0x1009789a
test cl, 1
je 0x1009789a
jmp 0x100979a0
cmp edx, 3
jne 0x10097978
mov ecx, dword [ebp - 0x94]
cmp byte [ecx + esi], 0
jne 0x1009789a
cmp edx, 4
jne 0x100979a0
mov ecx, dword [0x10222398]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
movss xmm1, dword [ecx + 0x10]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm3
comisd xmm1, xmm0
jae 0x1009789a
add eax, 4
cmp eax, dword [ebp - 0x1c]
jne 0x10097888
jmp 0x100979ef
cmp eax, 3
jne 0x100979df
cmp byte [0x101530fc], 0
je 0x100979d7
movss xmm0, dword [ebp - 0x84]
comiss xmm0, dword [0x101313f8]
mov eax, dword [0x1022c7b0]
setae cl
mov byte [eax], cl
jmp 0x100979df
mov eax, dword [0x1022c7b0]
mov byte [eax], 0
cmp dword [0x1022c7a4], edi
jl 0x100979ef
mov eax, dword [0x1022c7b0]
mov byte [eax], 1
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call fcn.1002dda0
mov ecx, dword [0x10222560]
mov edx, dword [0x102290dc]
add ecx, 0xffffffdb
xor ecx, 0x5b5c21be
mov byte [0x102290fc], 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 [0x10222568]
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], 0x1012c048
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [0x102223f4]
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 [0x10222398]
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 [0x10131244]
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 0x10097b6f
mov byte [ebp - 0xab], 0
mov ecx, dword [0x10222350]
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 [0x101311d4]
lahf
test ah, 0x44
jnp 0x10097c5c
movss xmm0, dword [ebp - 0x60]
comiss xmm0, dword [0x1013119c]
jbe 0x10097c5c
test byte [0x102290f8], 1
jne 0x10097c5c
cmp byte [0x101411a8], 0
mov byte [0x102290fc], 1
jne 0x10097c54
cmp byte [0x10140c7c], 0
je 0x10097c5c
mov eax, dword [0x10222488]
push 0x64
push 0
call eax
add esp, 8
cmp eax, 5
jge 0x10097c5c
mov eax, dword [0x1022c7b0]
mov byte [eax], 1
mov eax, dword [0x101505b4]
cmp eax, 0xffffffff
je 0x10097c8e
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x10151b18]
test al, al
je 0x10097c8e
test byte [0x102290f8], 1
je 0x10097c8e
cmp dword [0x1022c7a4], 0xe
mov eax, dword [0x1022c7b0]
setge cl
mov byte [eax], cl
mov eax, dword [0x1022fd60]
inc eax
mov dword [0x1022fd60], eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x10141598]
jb 0x10097cc3
cvttss2si ecx, dword [0x10141654]
mov dword [0x1022fd60], 0
mov dword [0x1022fd64], ecx
jmp 0x10097cc9
mov ecx, dword [0x1022fd64]
test ecx, ecx
jle 0x10097cf7
cmp byte [0x10141230], 0
je 0x10097cf7
cmp byte [0x1014150c], 0
je 0x10097ce8
cmp dword [0x101530d0], 1
jne 0x10097cf0
mov eax, dword [0x1022c7b0]
mov byte [eax], 1
dec ecx
mov dword [0x1022fd64], ecx
cmp byte [0x1022910e], 0
je 0x10097d08
mov eax, dword [0x1022c7b0]
mov byte [eax], 1
push 5
push dword [0x10140fd4]
push dword [0x10140fd0]
call fcn.1010deb0
cmp eax, dword [0x10140fd4]
je 0x10097d89
mov eax, dword [0x10222568]
add eax, 0xffffffd9
xor eax, 0x5b5c21c0
add eax, dword [0x102290dc]
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.10026490
comiss xmm0, dword [0x101313c0]
jbe 0x10097d89
test byte [0x102290f8], 1
jne 0x10097d89
cmp byte [0x102290fc], 0
jne 0x10097d89
cmp dword [0x1022c7a4], 0xe
mov eax, dword [0x1022c7b0]
setge cl
mov byte [eax], cl
mov eax, dword [0x1022c7a4]
cmp eax, 0xe
jl 0x10097d9a
mov byte [0x1022978c], 0
cmp eax, dword [0x1022c7a0]
jl 0x10097daa
mov eax, dword [0x1022c7b0]
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.1010e0bc
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret