Function at 0x10018320
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100601bb
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x10094144]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, ecx
mov dword [ebp - 0x18], esi
mov eax, dword [esi]
mov edx, dword [eax + 0x90]
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov ecx, esi
call edx
xor ebx, ebx
push ebx
mov ecx, esi
call fcn.10029480
push ebx
mov ecx, esi
call fcn.10029480
mov ecx, esi
mov dword [esi + 0x18], ebx
call fcn.10012cd0
mov ecx, dword [esi + 0xd0]
cmp ecx, ebx
je 0x10018395
dec dword [ecx + 0x22]
jne 0x10018395
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
lea ecx, [esi + 0x98]
call fcn.1004d260
lea ecx, [esi + 0x98]
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::SimpleArray::erase_void_]
lea ecx, [esi + 0x94]
call fcn.1004d260
lea ecx, [esi + 0x94]
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::SimpleArray::erase_void_]
push ebx
push 0x10018a90
lea ecx, [esi + 0x64]
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::SparseArray::forEach_bool____cdecl___int__int___int___int_]
lea ecx, [esi + 0x64]
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::SparseArray::erase_void_]
mov ecx, dword [esi + 0x78]
cmp ecx, ebx
je 0x100183e9
mov eax, dword [ecx]
mov edx, dword [eax + 0x64]
call edx
push esi
call fcn.10029480
mov ecx, dword [esi + 0xe4]
add esp, 4
cmp ecx, ebx
je 0x10018404
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
push esi
mov dword [esi + 0xe4], ebx
mov dword [esi + 0xd0], ebx
mov dword [esi + 0xd4], ebx
mov dword [esi + 0x9c], ebx
mov dword [esi + 0xf8], ebx
mov dword [esi + 0xdc], ebx
mov dword [esi + 0xd8], ebx
mov dword [esi + 0xf4], ebx
mov dword [esi + 0x6c], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0xb0], ebx
mov dword [esi + 0xb4], ebx
mov dword [esi + 0xbc], ebx
mov dword [esi + 0x100], ebx
mov dword [esi + 0xc4], ebx
mov dword [esi + 0xc8], ebx
mov word [esi + 0xcd], bx
mov byte [esi + 0xcc], bl
mov byte [esi + 0xcf], bl
call fcn.10029480
mov edi, dword [esi + 0x74]
add esp, 4
mov dword [ebp - 4], ebx
cmp edi, ebx
jne 0x10018487
mov edi, dword [esi + 0x70]
mov eax, dword [esi]
mov edx, dword [eax + 0xcc]
mov ecx, esi
call edx
mov dword [esi + 0xd0], eax
cmp edi, ebx
je 0x100184a5
lea eax, [edi + 4]
mov dword [ebp - 0x1c], eax
jmp 0x100184a8
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x20]
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::Heap::constructor_void_]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], ecx
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::Lockable::lock_void_const]
push ebx
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.10029480
mov ecx, dword [ebp - 0x20]
mov edi, eax
mov byte [ebp - 4], 0
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::Lockable::unlock_void_const]
mov ecx, dword [esi + 0xd0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
push edi
call eax
mov ecx, dword [esi + 0xd0]
mov edx, dword [ecx]
mov eax, dword [edx + 0x38]
push 0xffffffffffffffff
call eax
lea ecx, [ebp - 0x3c]
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::Variant::constructor_void_]
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::SimpleArray::constructor_void_]
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [esi + 0x80]
mov byte [ebp - 4], 3
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::SparseArray::getData_class_ScCore::SimpleArray__const]
push 0x20000090
lea ecx, [esi + 0x80]
mov dword [esi + 0xd4], ebx
mov dword [esi + 0xf8], ebx
mov dword [esi + 0xf4], ebx
mov dword [esi + 0xd8], ebx
mov dword [esi + 0xdc], ebx
call dword [sym.imp.ScCore.dll_public:_int___thiscall_ScCore::SparseArray::find_int_const]
push 0x20000090
push eax
mov ecx, esi
call fcn.10029480
push 0x2000008d
lea ecx, [esi + 0x80]
call dword [sym.imp.ScCore.dll_public:_int___thiscall_ScCore::SparseArray::find_int_const]
push 0x2000008d
push eax
mov ecx, esi
call fcn.10029480
xor edi, edi
mov dword [ebp - 0x1c], edi
mov edi, edi
lea ecx, [ebp - 0x14]
call dword [sym.imp.ScCore.dll_public:_int___thiscall_ScCore::SimpleArray::length_void_const]
cmp edi, eax
jge 0x10018607
push edi
lea ecx, [ebp - 0x14]
call dword [sym.imp.ScCore.dll_public:_int____thiscall_ScCore::SimpleArray::operator___int_]
mov edi, dword [eax]
cmp edi, ebx
je 0x100185a0
lea ebx, [edi + 4]
lea ecx, [ebp - 0x20]
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::Heap::constructor_void_]
mov ecx, ebx
mov dword [ebp - 0x20], ebx
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::Lockable::lock_void_const]
mov byte [ebp - 4], 4
xor ebx, ebx
lea ebx, [ebx]
mov ecx, edi
call sym.ExtendScript.dll_public:_int___thiscall_ScScript::Dispatcher::getClassCount_void_const
cmp ebx, eax
jge 0x100185ed
push ebx
mov ecx, edi
call fcn.10029480
cmp eax, 0x20000090
je 0x100185ea
cmp eax, 0x2000008d
je 0x100185ea
push eax
push edi
mov ecx, esi
call fcn.10029480
inc ebx
jmp 0x100185c0
mov ecx, dword [ebp - 0x20]
mov byte [ebp - 4], 3
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::Lockable::unlock_void_const]
inc dword [ebp - 0x1c]
mov edi, dword [ebp - 0x1c]
xor ebx, ebx
jmp 0x10018580
mov edx, dword [esi + 0xf4]
mov ecx, dword [esi + 0xd0]
push edx
call fcn.10029480
mov eax, dword [esi + 0x78]
lea ebx, [esi + 0x78]
test eax, eax
je 0x10018631
mov ecx, dword [esi + 0xd0]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x30]
call eax
cmp dword [ebx], 0
jne 0x100186ab
push str.global
lea ecx, [ebp - 0x20]
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::String::constructor_char_const__]
push 0x10000
lea ecx, [ebp - 0x20]
push ecx
push ebx
mov byte [ebp - 4], 5
call dword [sym.imp.ScCore.dll_public:_static_int___cdecl_ScCore::LiveObject::create_class_ScCore::LiveObject____class_ScCore::String_const___int_]
add esp, 0xc
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 3
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::String::destructor_void_]
cmp dword [ebx], 0
jne 0x100186ab
push 0x28
call dword [sym.imp.ScCore.dll_public:_static_void____cdecl_ScCore::Heap::operator_new_unsigned_int_]
mov edi, eax
add esp, 4
mov dword [ebp - 0x20], edi
mov byte [ebp - 4], 6
test edi, edi
je 0x100186a3
push 1
push str.global
mov ecx, edi
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::LiveObject::constructor_char_const___bool_]
mov dword [edi], vtable.ScCore::LiveObject.1.0
mov dword [edi + 0x14], vtable.ScCore::LiveObject.0
jmp 0x100186a5
xor edi, edi
mov byte [ebp - 4], 3
mov dword [ebx], edi
mov ecx, dword [esi + 0xd0]
mov edx, dword [ecx]
mov eax, dword [ebx]
mov edx, dword [edx + 0x30]
push eax
call edx
mov eax, dword [ebx]
push eax
push esi
call fcn.10029480
mov ecx, dword [esi + 0xf4]
add esp, 8
call fcn.10029480
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::SimpleArray::destructor_void_]
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0
call dword [sym.imp.ScCore.dll_public:_void___thiscall_ScCore::Variant::destructor_void_]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret