Function at 0x100a5d40
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x101874a0
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101cd7b4]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov esi, ecx
call fcn.10021980
mov ebp, dword [0x10199070]
mov dword [esp + 0x24], eax
add eax, 4
push eax
mov dword [esp + 0x24], 0x10199608
mov dword [esp + 0x20], eax
call ebp
mov edi, dword [esp + 0x38]
xor ebx, ebx
or eax, 0xffffffff
cmp edi, eax
mov dword [esp + 0x30], ebx
jne 0x100a5dd9
cmp byte [esi + 0x5800], bl
je 0x100a5daf
mov dword [esi + 0x5808], 2
jmp 0x100a5db9
mov dword [esi + 0x5808], 3
cmp dword [esi + 0x583c], eax
je 0x100a5e4a
call dword [0x1019907c]
mov dword [esi + 0x5840], eax
mov dword [esi + 0x5854], ebx
jmp 0x100a5e4a
cmp byte [esi + 0x5800], bl
je 0x100a5de9
mov dword [esi + 0x5808], ebx
jmp 0x100a5df3
mov dword [esi + 0x5808], 1
cmp dword [esi + 0x583c], eax
jne 0x100a5e4a
call dword [0x1019907c]
mov ecx, dword [esi + 0x5840]
cmp eax, ecx
jb 0x100a5e0f
sub eax, ecx
jmp 0x100a5e14
sub eax, ecx
sub eax, 1
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
mov eax, dword [esi + 0x5690]
mov ecx, dword [esi + 0x568c]
shr edx, 6
add dword [esi + 0x5680], edx
cmp eax, ecx
mov dword [esi + 0x5840], ebx
ja 0x100a5e3e
mov eax, ecx
mov dword [esi + 0x568c], eax
mov dword [esi + 0x5690], ebx
mov bl, 0x64
mov dword [esi + 0x583c], edi
cmp byte [0x101cc039], bl
jbe 0x100a5e60
mov byte [0x101cc039], bl
mov eax, dword [esi + 0x5808]
cmp eax, 3
ja case.default.0x100a5e6f
jmp dword [eax*4 + 0x100a6018]
push 0
push 0
push 0
mov ecx, esi
call fcn.100a5ae0
mov eax, 1
cmp dword [esi + 0x57e8], eax
je case.default.0x100a5e6f
mov dword [esi + 0x57e8], eax
call dword [0x1019907c]
mov dword [esi + 0x57e0], eax
jmp case.default.0x100a5e6f
mov eax, dword [esi + 0x5534]
test eax, eax
jbe 0x100a5ebe
push 0
push 1
jmp 0x100a5fec
cmp byte [0x101cc03b], 9
jne 0x100a5fdd
call fcn.10060170
mov ecx, eax
call fcn.1005b5a0
cmp eax, 0x25800
jbe 0x100a5ee7
xor eax, eax
push eax
push eax
jmp 0x100a5fe9
movzx ecx, byte [0x101cc039]
imul ecx, eax
mov eax, 0x51eb851f
mul ecx
movzx eax, byte [0x101cc03a]
shr edx, 5
shl eax, 0xa
cmp edx, eax
jbe 0x100a5f0b
mov eax, edx
push 0
push 0
jmp 0x100a5fe9
mov eax, dword [esi + 0x5534]
test eax, eax
ja 0x100a5eb5
cmp byte [0x101cc04e], 0
jbe 0x100a5f69
lea ecx, [esi + 0x4b60]
call fcn.100d38a0
test eax, eax
jne 0x100a5f69
lea ecx, [esi + 0x4c68]
call fcn.100d38a0
test eax, eax
jle 0x100a5f69
movzx ebx, byte [0x101cc04e]
call fcn.10021980
lea edi, [eax + 4]
push edi
call ebp
push edi
mov dword [esi + 0x5538], ebx
call dword [0x10199074]
jmp case.default.0x100a5e6f
cmp byte [0x101cc03b], 9
jne 0x100a5fdd
call fcn.10060170
mov ecx, eax
call fcn.1005b5a0
cmp eax, 0x25800
jbe 0x100a5f8f
xor edx, edx
push edx
push edx
shr edx, 0xa
push edx
jmp 0x100a5fed
mov cl, byte [0x101cc03d]
test cl, cl
jne 0x100a5f9d
mov cl, 0x5a
jmp 0x100a5fa3
cmp cl, bl
jbe 0x100a5fa9
mov cl, bl
mov byte [0x101cc03d], cl
movzx edx, cl
movzx ecx, byte [0x101cc039]
imul edx, ecx
imul edx, eax
mov eax, 0xd1b71759
mul edx
movzx eax, byte [0x101cc03a]
shr edx, 0xd
shl eax, 0xa
cmp edx, eax
ja 0x100a5fd3
mov edx, eax
push 0
push 0
shr edx, 0xa
push edx
jmp 0x100a5fed
push 0
push 0
push edi
mov ecx, esi
call fcn.100a3f30
shr eax, 0xa
push eax
mov ecx, esi
call fcn.100a5ae0
mov edx, dword [esp + 0x1c]
push edx
call dword [0x10199074]
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 4