Function at 0x1000a800
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x1004ba1e
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10077990]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
xor ebx, ebx
xor eax, eax
push ebx
xor edi, edi
mov dword [esp + 0x1c], eax
push ebx
mov dword [esp + 0x1c], edi
call dword [sym.imp.OLEAUT32.dll_CreateErrorInfo]
mov esi, dword [esp + 0x38]
mov esi, dword [esi + 8]
add esi, 0x64
push esi
mov dword [esp + 0x24], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x30], ebx
test edx, edx
je 0x1000abf0
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x1000a874
mov edi, 0x80070057
jmp 0x1000abdc
xor ecx, ecx
test edx, edx
je 0x1000a897
lea ebx, [ebx]
cmp dword [eax + 4], 0
je 0x1000a88b
cmp dword [eax], 0
je 0x1000a86a
inc ecx
add eax, 0x18
cmp ecx, edx
jb 0x1000a880
mov eax, dword [esp + 0x40]
mov dword [esp + 0x1c], 0
test edx, edx
je 0x1000abf2
jmp 0x1000a8b0
lea edi, [eax + 8]
mov ecx, 0x10056c48
mov edx, edi
mov ebp, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000a8d3
add ecx, 4
add edx, 4
sub ebp, 4
jae 0x1000a8c0
jmp 0x1000a8f1
mov ecx, 0x10053894
mov edx, edi
mov ebp, 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000a939
add ecx, 4
add edx, 4
sub ebp, 4
jae 0x1000a8e0
mov eax, dword [esp + 0x38]
push 0
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x80], 0
jne 0x1000a932
push dword [esp + 0x44]
add ecx, 0x98
push 1
call fcn.10016d20
test eax, eax
js 0x1000ab6f
cmp eax, 0x40eda
mov eax, 1
mov dword [esp + 0x18], eax
cmove ebx, eax
jmp 0x1000ab74
push 6
jmp 0x1000ab66
mov ecx, 0x10056c38
mov edx, edi
mov ebp, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1000aa92
add ecx, 4
add edx, 4
sub ebp, 4
jae 0x1000a945
push 0x28
call fcn.1003d386
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x30], 1
test eax, eax
je 0x1000a97c
mov ecx, eax
call fcn.10013630
mov ebp, eax
jmp 0x1000a97e
xor ebp, ebp
mov byte [esp + 0x30], 0
test ebp, ebp
je 0x1000aba6
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 8]
cmp dword [eax + 0x80], 0
jne 0x1000a9b2
push 0
push 1
push dword [esp + 0x48]
call fcn.1003d020
mov ebx, 1
jmp 0x1000aa7d
movdqu xmm0, xmmword [0x10056c38]
mov edx, dword [ebp]
sub esp, 0x10
mov eax, esp
mov ecx, ebp
push 0x31
push 8
push 0x10064cb8
movdqu xmmword [eax], xmm0
call dword [edx + 4]
mov edi, eax
test edi, edi
js 0x1000ab94
mov eax, dword [esp + 0x38]
push 0x3b
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xa0]
call fcn.10015160
push 0x26
mov ecx, ebp
mov edi, eax
call fcn.10015160
lea ecx, [edi + 0x10]
add eax, 0x10
push ecx
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
mov edi, eax
test edi, edi
js 0x1000abbf
mov eax, dword [esp + 0x38]
push 0xc
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xa0]
call fcn.10015160
push 0x76
mov ecx, ebp
mov edi, eax
call fcn.10015160
lea ecx, [edi + 0x10]
add eax, 0x10
push ecx
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopyInd]
mov edi, eax
mov dword [esp + 0x14], edi
test edi, edi
js 0x1000abbf
push 0
push 0
push dword [esp + 0x48]
mov ecx, ebp
push 1
call fcn.10016f20
test eax, eax
jns 0x1000aa6c
mov ebx, 1
jmp 0x1000aa7d
cmp eax, 0x40eda
mov eax, 1
mov dword [esp + 0x18], eax
cmove ebx, eax
mov ecx, ebp
call fcn.10013700
push ebp
call fcn.1003d3fc
add esp, 4
jmp 0x1000ab74
mov ecx, 0x10056c28
mov edx, 0xc
lea esp, [esp]
mov eax, dword [ecx]
cmp eax, dword [edi]
jne 0x1000ab62
add ecx, 4
add edi, 4
sub edx, 4
jae 0x1000aaa0
push 0x28
call fcn.1003d386
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x30], 2
test eax, eax
je 0x1000aad7
mov ecx, eax
call fcn.10013630
mov edi, eax
jmp 0x1000aad9
xor edi, edi
mov byte [esp + 0x30], 0
test edi, edi
je 0x1000aba6
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 8]
cmp dword [eax + 0x80], 0
je 0x1000ab62
movdqu xmm0, xmmword [0x10056c28]
mov edx, dword [edi]
sub esp, 0x10
mov eax, esp
mov ecx, edi
push 1
push 7
push 0x10064cb8
movdqu xmmword [eax], xmm0
call dword [edx + 4]
mov dword [esp + 0x14], eax
mov ecx, edi
test eax, eax
js 0x1000abad
push 0
push 0
push dword [esp + 0x48]
push 1
call fcn.10016f20
test eax, eax
jns 0x1000ab3f
mov ebx, 1
jmp 0x1000ab50
cmp eax, 0x40eda
mov eax, 1
mov dword [esp + 0x18], eax
cmove ebx, eax
mov ecx, edi
call fcn.10013700
push edi
call fcn.1003d3fc
add esp, 4
jmp 0x1000ab74
push 0
push 1
push dword [esp + 0x48]
call fcn.1003d020
mov ebx, 1
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
inc ecx
add eax, 0x18
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x40], eax
cmp ecx, dword [esp + 0x3c]
jb 0x1000a8b0
jmp 0x1000abbb
mov ecx, ebp
call fcn.10013700
push ebp
call fcn.1003d3fc
add esp, 4
jmp 0x1000abbf
mov edi, 0x8007000e
jmp 0x1000abbf
call fcn.10013700
push edi
call fcn.1003d3fc
add esp, 4
mov edi, dword [esp + 0x14]
cmp ebx, 1
jne 0x1000abd8
cmp dword [esp + 0x18], ebx
jne 0x1000abd1
mov edi, 0x40eda
jmp 0x1000abf2
mov edi, 0x80040e21
jmp 0x1000abdc
test edi, edi
jns 0x1000abf2
mov eax, dword [esp + 0x38]
push 0x10068d68
push edi
push dword [eax + 8]
call fcn.10010680
jmp 0x1000abf2
xor edi, edi
test esi, esi
je 0x1000abfd
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, edi
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc