Function at 0x10097880
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 0x100cc77d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xe8
mov eax, dword [0x100e4040]
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 [0x101d37ec]
xorps xmm0, xmm0
mov ecx, dword [eax + 0x30]
mov dl, byte [eax + 0x30]
shr ecx, 0xb
and dl, 1
and cl, 1
cmp dword [0x101d0788], 9
jne 0x10097930
mov eax, dword [0x101c971c]
mov esi, dword [0x101d077c]
add eax, 0xffffff7c
xor eax, 0xe0e58176
cmp byte [eax + esi], 0
je 0x10097904
test dl, dl
jne 0x10097904
test cl, cl
je 0x10097930
mov eax, dword [0x101c9720]
add eax, 0xffffff7b
xor eax, 0xe0e58177
movss xmm1, dword [eax + esi]
comiss xmm1, xmm0
jbe 0x10097930
mov eax, dword [0x101c93d8]
movss xmm0, dword [eax + 0x10]
comiss xmm0, xmm1
ja 0x10097fc7
mov eax, dword [0x101d37c0]
cmp byte [eax], 0
jne 0x10097942
mov eax, dword [0x101d37bc]
mov byte [eax], 0
cmp byte [0x100e7f04], 0
je 0x10097c1b
mov ecx, dword [0x101c9374]
mov esi, dword [0x101c9408]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10097977
mov eax, dword [esi]
test eax, eax
je 0x10097977
mov al, byte [eax + 0x20]
test al, al
jne 0x10097c1b
test byte [0x101d00f8], 0x40
jne 0x10097c1b
cvttss2si edi, dword [0x100e80d8]
mov ecx, dword [0x101c95a0]
mov edx, dword [0x101d00dc]
cmp dword [0x101d37ac], edi
cmovl edi, dword [0x101d37ac]
add ecx, 0xffffffdb
mov eax, ecx
xor eax, 0xe0e58117
cmp dword [0x101d3860], 0
movq xmm0, qword [eax + edx]
mov eax, dword [eax + edx + 8]
movq qword [ebp - 0x20], xmm0
mov dword [ebp - 0x18], eax
jne 0x100979d3
xor ecx, 0xe0e58117
add ecx, edx
jmp 0x100979eb
mov ecx, dword [0x101d3858]
mov eax, dword [0x101d3854]
dec ecx
and ecx, dword [0x101d385c]
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 0x100e7fb8
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.1002e0d0
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x1c]
je 0x10097c0c
mov ecx, dword [0x101c9650]
mov esi, dword [0x101d00dc]
add ecx, 0xffffffaf
movss xmm2, dword [0x101d3898]
xor ecx, 0xe0e58143
movss xmm4, dword [0x100d8338]
movsd xmm3, qword [0x100d8218]
mov dword [ebp - 0x94], ecx
mov edx, dword [eax]
test edx, edx
jne 0x10097b19
cmp dword [0x100fa100], edx
jne 0x10097bbd
mov eax, dword [0x100e8060]
test eax, eax
je 0x10097bf4
cmp eax, 1
je 0x10097bd9
cmp eax, 2
jne 0x10097bcb
mov eax, dword [0x101d37b0]
cmp eax, dword [0x100fa130]
jl 0x10097bf4
mov ecx, dword [0x101c94c8]
movd xmm0, edi
cvtdq2ps xmm0, xmm0
push edi
mulss xmm0, dword [0x100d819c]
cvttss2si eax, xmm0
push eax
call ecx
mov dword [0x100fa130], eax
add esp, 8
mov eax, dword [0x101d37bc]
mov byte [eax], 1
jmp 0x10097bfc
cmp edx, 1
jne 0x10097b5e
mov ecx, dword [0x101c95a8]
add ecx, 0xffffffd9
xor ecx, 0xe0e58119
movss xmm1, dword [ecx + esi + 4]
movss xmm0, dword [ecx + esi]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.100267d0
comiss xmm0, xmm4
jbe 0x10097bbd
mov cl, byte [0x101d00f8]
test dl, cl
jne 0x10097ab7
jmp 0x10097b64
mov cl, byte [0x101d00f8]
cmp edx, 2
jne 0x10097b80
test byte [0x101d37f4], dl
jne 0x10097ab7
test cl, 1
je 0x10097ab7
jmp 0x10097bbd
cmp edx, 3
jne 0x10097b95
mov ecx, dword [ebp - 0x94]
cmp byte [ecx + esi], 0
jne 0x10097ab7
cmp edx, 4
jne 0x10097bbd
mov ecx, dword [0x101c93d8]
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
movss xmm1, dword [ecx + 0x10]
cvtps2pd xmm1, xmm1
addsd xmm1, xmm3
comisd xmm1, xmm0
jae 0x10097ab7
add eax, 4
cmp eax, dword [ebp - 0x1c]
jne 0x10097aa5
jmp 0x10097c0c
cmp eax, 3
jne 0x10097bfc
cmp byte [0x100fa12c], 0
je 0x10097bf4
movss xmm0, dword [ebp - 0x84]
comiss xmm0, dword [0x100d83f4]
mov eax, dword [0x101d37bc]
setae cl
mov byte [eax], cl
jmp 0x10097bfc
mov eax, dword [0x101d37bc]
mov byte [eax], 0
cmp dword [0x101d37b0], edi
jl 0x10097c0c
mov eax, dword [0x101d37bc]
mov byte [eax], 1
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 0xffffffff
call fcn.1002e370
mov ecx, dword [0x101c95a0]
mov edx, dword [0x101d00dc]
add ecx, 0xffffffdb
xor ecx, 0xe0e58117
mov byte [0x101d00fc], 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 [0x101c95a8]
add eax, 0xffffffd9
movq qword [ebp - 0xa0], xmm0
xor eax, 0xe0e58119
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], 0x100d3078
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [0x101c9434]
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 [0x101c93d8]
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 [0x100d824c]
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 0x10097d8c
mov byte [ebp - 0xab], 0
mov ecx, dword [0x101c9390]
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 [0x100d81dc]
lahf
test ah, 0x44
jnp 0x10097e79
movss xmm0, dword [ebp - 0x60]
comiss xmm0, dword [0x100d81a0]
jbe 0x10097e79
test byte [0x101d00f8], 1
jne 0x10097e79
cmp byte [0x100e8190], 0
mov byte [0x101d00fc], 1
jne 0x10097e71
cmp byte [0x100e7c64], 0
je 0x10097e79
mov eax, dword [0x101c94c8]
push 0x64
push 0
call eax
add esp, 8
cmp eax, 5
jge 0x10097e79
mov eax, dword [0x101d37bc]
mov byte [eax], 1
mov eax, dword [0x100f75f0]
cmp eax, 0xffffffff
je 0x10097eab
lea eax, [eax + eax*2]
mov al, byte [eax*4 + 0x100f8cf8]
test al, al
je 0x10097eab
test byte [0x101d00f8], 1
je 0x10097eab
cmp dword [0x101d37b0], 0xe
mov eax, dword [0x101d37bc]
setge cl
mov byte [eax], cl
mov eax, dword [0x101d6d8c]
inc eax
mov dword [0x101d6d8c], eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, dword [0x100e8580]
jb 0x10097ee0
cvttss2si ecx, dword [0x100e863c]
mov dword [0x101d6d8c], 0
mov dword [0x101d6d90], ecx
jmp 0x10097ee6
mov ecx, dword [0x101d6d90]
test ecx, ecx
jle 0x10097f14
cmp byte [0x100e8218], 0
je 0x10097f14
cmp byte [0x100e84f4], 0
je 0x10097f05
cmp dword [0x100fa100], 1
jne 0x10097f0d
mov eax, dword [0x101d37bc]
mov byte [eax], 1
dec ecx
mov dword [0x101d6d90], ecx
cmp byte [0x101d010e], 0
je 0x10097f25
mov eax, dword [0x101d37bc]
mov byte [eax], 1
push 5
push dword [0x100e7fbc]
push dword [0x100e7fb8]
call fcn.100c1e50
cmp eax, dword [0x100e7fbc]
je 0x10097fa6
mov eax, dword [0x101c95a8]
add eax, 0xffffffd9
xor eax, 0xe0e58119
add eax, dword [0x101d00dc]
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.100267d0
comiss xmm0, dword [0x100d83bc]
jbe 0x10097fa6
test byte [0x101d00f8], 1
jne 0x10097fa6
cmp byte [0x101d00fc], 0
jne 0x10097fa6
cmp dword [0x101d37b0], 0xe
mov eax, dword [0x101d37bc]
setge cl
mov byte [eax], cl
mov eax, dword [0x101d37b0]
cmp eax, 0xe
jl 0x10097fb7
mov byte [0x101d0798], 0
cmp eax, dword [0x101d37ac]
jl 0x10097fc7
mov eax, dword [0x101d37bc]
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.100c205e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret