Function at 0x22aeb50
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff8c
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x22af4b1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
test al, al
jne 0x22af496
mov eax, dword [ebp - 4]
call fcn.022b0098
xor eax, eax
push ebp
push 0x22af484
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.022b0060
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.02012b68
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x22f6368]
call fcn.0200f140
mov eax, dword [ebp - 0x54]
push eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.020082fc
xor eax, eax
push ebp
push 0x22af467
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x22aeccf
mov eax, dword [ebp - 4]
call fcn.022b0864
cmp dword [eax + 8], 0
jle 0x22aec3f
mov eax, dword [ebp - 4]
call fcn.022b0864
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
mov edi, eax
dec edi
test edi, edi
jl 0x22aeccf
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x22aeccb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x20]
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.02014ed0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.02012b68
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x22f6368]
call fcn.0200f140
mov eax, dword [ebp - 0x58]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.020082fc
inc ebx
dec edi
jne 0x22aec54
test byte [ebp - 5], 4
je 0x22aeede
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
mov edi, eax
dec edi
test edi, edi
jl 0x22aedb9
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
call fcn.022a91b4
test al, al
je 0x22aedb1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x34]
call fcn.022ab978
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.022aeb38
test al, al
jne 0x22aedb1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.022ab918
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.02014ed0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.02012b68
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x22f6368]
call fcn.0200f140
mov eax, dword [ebp - 0x5c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.020082fc
inc ebx
dec edi
jne 0x22aecf2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
mov edi, eax
sub edi, 2
test edi, edi
jl 0x22aeeee
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
cmp dword [eax + 0x34], 0
je 0x22aeed4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x34]
call fcn.022aba80
add al, 0xfe
sub al, 2
jae 0x22aeed4
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.022ac82c
call fcn.022a91b4
test al, al
jne 0x22aeed4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
lea edx, [ebp - 0x20]
call fcn.022a8dbc
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.022ac82c
lea edx, [ebp - 0x30]
call fcn.022a8dbc
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x40]
call fcn.02012bb0
test al, al
je 0x22aeed4
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x40]
call fcn.02012b44
test al, al
je 0x22aee8b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.022aba90
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.02014ed0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.02012b68
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x22f6368]
call fcn.0200f140
mov eax, dword [ebp - 0x60]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.020082fc
inc ebx
dec edi
jne 0x22aedd4
jmp 0x22aeeee
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x22aefc1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x22aefcf
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x22aef18
dec esi
test esi, esi
jle 0x22aef48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.022ac82c
cmp dword [eax + 0x34], 0
je 0x22aef48
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.022ac82c
mov eax, dword [eax + 0x34]
call fcn.022aba80
cmp al, 3
je 0x22aef17
test esi, esi
jl 0x22aef6d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.022ac82c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
pop edx
call fcn.022aaf20
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.02014ed0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.02012b68
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x22f6368]
call fcn.0200f140
mov eax, dword [ebp - 0x64]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.020082fc
dec ebx
test ebx, ebx
jne 0x22aef0f
jmp 0x22aefcf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x22af182
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x22af139
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x30]
call fcn.0229ec60
mov esi, eax
dec esi
cmp esi, 0
jl 0x22af0ee
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.022a7d6c
mov edx, dword [0x229b760]
call fcn.02008210
test al, al
jne 0x22af0cd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.022a7d6c
mov edx, dword [0x229b368]
call fcn.02008210
test al, al
jne 0x22af0cd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.022a7d6c
mov edx, dword [0x229bfa4]
call fcn.02008210
test al, al
jne 0x22af0cd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.022a7d6c
mov edx, dword [0x229c144]
call fcn.02008210
test al, al
je 0x22af0e4
test ebx, ebx
jg 0x22af0cd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
dec eax
jne 0x22af0e4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0229eca8
dec esi
cmp esi, 0xffffffff
jne 0x22af01f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
call fcn.022a8090
test al, al
je 0x22af12f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x30]
call fcn.0229ec60
test eax, eax
jne 0x22af12f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
call fcn.02007f24
dec ebx
cmp ebx, 0xffffffff
jne 0x22aeffe
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.02014ed0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.02012b68
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x22f6368]
call fcn.0200f140
mov eax, dword [ebp - 0x68]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.020082fc
test byte [ebp - 5], 1
je 0x22af2c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x22af2d7
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
call fcn.022a8090
test al, al
jne 0x22af2bd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
call fcn.022a91b4
test al, al
je 0x22af2bd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x34]
call fcn.022aba54
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
call fcn.022aab6c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
call fcn.022a8090
test al, al
je 0x22af274
test ebx, ebx
jle 0x22af267
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.022ac82c
call fcn.022a91b4
test al, al
je 0x22af267
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.022ac82c
mov eax, dword [eax + 0x34]
call fcn.022aba54
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.022ac82c
mov eax, dword [eax + 0x34]
pop edx
call fcn.022aba5c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.0229eca8
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.02014ed0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.02012b68
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x22f6368]
call fcn.0200f140
mov eax, dword [ebp - 0x6c]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.020082fc
dec ebx
cmp ebx, 0xffffffff
jne 0x22af1a3
jmp 0x22af2d7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x22af40d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x22af3c4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
cmp dword [eax + 0x34], 0
je 0x22af379
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.022aba54
test ax, ax
je 0x22af343
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
dec eax
jne 0x22af379
mov eax, esi
call fcn.022ab90c
test al, al
jne 0x22af379
mov eax, esi
call fcn.022aba64
test al, al
jne 0x22af379
mov eax, esi
call fcn.022aba80
sub al, 2
jb 0x22af372
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.0229ec60
dec eax
jne 0x22af379
mov eax, esi
call fcn.02007f24
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
call fcn.022a8090
test al, al
je 0x22af3ba
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
mov eax, dword [eax + 0x30]
call fcn.0229ec60
test eax, eax
jne 0x22af3ba
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.022ac82c
call fcn.02007f24
dec ebx
cmp ebx, 0xffffffff
jne 0x22af306
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.02014ed0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.02012b68
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x22f6368]
call fcn.0200f140
mov eax, dword [ebp - 0x70]
push eax
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.020082fc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x22af46e
call fcn.02006f10
test eax, eax
jne 0x22af42a
mov ebx, 0x64
jmp 0x22af42c
xor ebx, ebx
push ebx
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.02012b68
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x22f6368]
call fcn.0200f140
mov eax, dword [ebp - 0x74]
push eax
mov cl, 2
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov si, 0xfffd
call fcn.020082fc
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x22af4b8
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.02009df0
ret