Function at 0x10023080
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x100fcbcb
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x20a4
call fcn.1003d460
mov eax, dword [0x1013f030]
xor eax, esp
mov dword [esp + 0x20a0], eax
push ebx
push esi
push edi
mov eax, dword [0x1013f030]
xor eax, esp
push eax
lea eax, [esp + 0x20b8]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
xor edi, edi
mov dword [esp + 0x30], eax
mov esi, ecx
mov ebx, edx
mov eax, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x18], vtable.ProtocolFilters::IOB.0
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], 0x6400000
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20c0], edi
cmp dword [esi + 0xf4], eax
jne 0x10023159
cmp dword [esi + 0xf8], edi
jle 0x10023159
mov eax, dword [esi]
cmp eax, 3
je 0x10023126
cmp eax, 4
jne 0x10023414
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
push 2
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [ebp + 8]
push ebx
mov dword [esi + 0xf8], eax
cdq
push ecx
mov ecx, dword [esp + 0x38]
push edx
push eax
mov edx, esi
call fcn.100222b0
jmp 0x10023414
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
push 2
call eax
mov ebx, eax
mov dword [esp + 0x38], ebx
test ebx, ebx
je 0x100233fc
mov edx, dword [ebx]
mov eax, dword [edx + 0x14]
mov ecx, ebx
call eax
mov dword [esp + 0x3c], eax
test edx, edx
ja 0x1002318c
test eax, eax
jbe 0x100233cc
mov eax, dword [esi + 0x108]
cdq
push 0
push edx
push eax
mov eax, dword [ebx]
mov edx, dword [eax + 8]
mov ecx, ebx
call edx
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
cmp edi, eax
je 0x100231bd
push edi
call fcn.10030c8f
add esp, 4
xor edi, edi
mov dword [esp + 0x1c], edi
mov eax, dword [ebx]
mov edx, dword [eax + 0xc]
push 0x2000
lea ecx, [esp + 0xb0]
push ecx
mov ecx, ebx
call edx
mov ebx, eax
mov dword [esp + 0x14], ebx
test ebx, ebx
je 0x100233c2
cmp dword [esi + 0xd4], 1
jne 0x10023289
push ebx
push str._x_r_n
lea eax, [esp + 0x4c]
push 0x64
push eax
call fcn.1003258e
lea eax, [esp + 0x54]
add esp, 0x10
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10023210
sub eax, edx
mov ebx, eax
je 0x10023281
lea eax, [ebx + 1]
cmp eax, 0x6400000
ja 0x10023281
test eax, eax
jbe 0x1002326a
mov esi, 0xa
cmp eax, esi
jb 0x10023244
add esi, esi
cmp esi, eax
jbe 0x10023234
cmp esi, 0x6400000
jb 0x10023244
mov esi, eax
push esi
test edi, edi
je 0x10023254
push edi
call fcn.10032818
add esp, 8
jmp 0x1002325c
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10023281
mov edi, eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], edi
push ebx
lea ecx, [esp + 0x48]
push ecx
push edi
call fcn.10037db0
add esp, 0xc
mov dword [esp + 0x20], ebx
mov byte [ebx + edi], 0
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
lea eax, [edx + ebx + 1]
cmp eax, 0x6400000
ja 0x10023317
mov ecx, dword [esp + 0x24]
cmp eax, ecx
jbe 0x100232ea
mov esi, ecx
test ecx, ecx
jne 0x100232ab
mov esi, 0xa
cmp esi, eax
ja 0x100232b6
nop
add esi, esi
cmp esi, eax
jbe 0x100232b0
cmp esi, 0x6400000
jb 0x100232c0
mov esi, eax
push esi
test edi, edi
je 0x100232d0
push edi
call fcn.10032818
add esp, 8
jmp 0x100232d8
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x10023313
mov edi, eax
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x1c], edi
mov ecx, dword [esp + 0x20]
push ebx
lea eax, [esp + 0xb0]
push eax
add ecx, edi
push ecx
call fcn.10037db0
mov edx, dword [esp + 0x2c]
lea eax, [edx + ebx]
add esp, 0xc
mov dword [esp + 0x20], eax
mov byte [eax + edi], 0
jmp 0x10023317
mov esi, dword [esp + 0x10]
cmp dword [esi + 0xd4], 1
jne 0x1002339f
mov eax, dword [esp + 0x20]
add eax, 3
cmp eax, 0x6400000
ja 0x1002339f
mov ecx, dword [esp + 0x24]
cmp eax, ecx
jbe 0x1002337f
mov esi, ecx
test ecx, ecx
jne 0x10023341
mov esi, 0xa
cmp esi, eax
ja 0x1002334b
add esi, esi
cmp esi, eax
jbe 0x10023345
cmp esi, 0x6400000
jb 0x10023355
mov esi, eax
push esi
test edi, edi
je 0x10023365
push edi
call fcn.10032818
add esp, 8
jmp 0x1002336d
call fcn.10030d6c
add esp, 4
test eax, eax
je 0x1002339b
mov edi, eax
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x20]
mov cx, word [0x10138c1c]
mov word [eax + edi], cx
add eax, 2
mov dword [esp + 0x20], eax
mov byte [eax + edi], 0
jmp 0x1002339f
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x30]
push edx
push edi
push eax
push 1
push ecx
mov ecx, dword [esp + 0x48]
call fcn.10017fa0
mov ebx, dword [esp + 0x38]
jmp 0x100231a0
mov edx, dword [esp + 0x3c]
mov dword [esi + 0x108], edx
cmp dword [esi + 0xd4], 1
jne 0x100233fc
mov esi, dword [esi]
cmp esi, 3
je 0x100233e1
cmp esi, 4
jne 0x100233fc
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x30]
push 5
push str.0_r_n_r_n
push eax
push 1
push ecx
mov ecx, dword [esp + 0x48]
call fcn.10017fa0
mov dword [esp + 0x20c0], 0xffffffff
test edi, edi
je 0x10023414
push edi
call fcn.10030c8f
add esp, 4
mov ecx, dword [esp + 0x20b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x20a0]
xor ecx, esp
call fcn.10030c80
mov esp, ebp
pop ebp
ret 8