Function at 0x1a07d29
Capabilities:
Get number of processors

Disassembly:
mov edi, edi
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x44
push esi
mov esi, ecx
mov dword [ebp - 0x10], edx
xor ecx, ecx
mov dword [ebp - 8], esi
push edi
mov edi, ecx
cmp dword [esi + 8], 0xddeeddee
jne 0x1a07ea9
test byte [0x1ac58c8], 2
jne 0x1a4e6a8
mov ecx, dword [ebx + 8]
mov eax, ecx
and eax, 1
test cl, 8
jne 0x1a4e6db
test cl, 4
jne 0x1a4e6e3
mov edi, 0x100
test edi, ecx
jne 0x1a4e6ed
mov edi, ecx
and edi, 0xe00
jne 0x1a4e6f4
test cl, 0x10
jne 0x1a4e6fb
test cl, 2
jne 0x1a4e705
push dword [ebx + 0x10]
and eax, 0x11000001
mov ecx, esi
push dword [ebx + 0xc]
push eax
call fcn.01a94275
mov edi, eax
test edi, edi
jne 0x1a07e99
mov eax, dword fs:[0x18]
mov ecx, 0xc000000d
mov esi, dword fs:[0x18]
push ecx
mov dword [eax + 0xbf4], ecx
call fcn.01a062b0
mov dword [esi + 0x34], eax
jmp 0x1a07e2f
push eax
push eax
push edx
push edi
push 3
mov edx, esi
pop ecx
call fcn.01a36033
cmp byte [ebp - 1], 0
jne 0x1a4e88e
mov eax, dword fs:[0x18]
mov ecx, 0xc000000d
mov esi, dword fs:[0x18]
push ecx
mov dword [eax + 0xbf4], ecx
call fcn.01a062b0
mov dword [esi + 0x34], eax
xor eax, eax
mov edi, eax
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc
mov ecx, dword [edi - 8]
movzx eax, ax
sub ecx, eax
add ecx, dword [ebp - 0x28]
lea eax, [ecx + edi]
cmp eax, edx
sbb al, al
not al
and byte [ebp - 1], al
je 0x1a4e887
jmp 0x1a4e891
mov esi, dword [ebp - 8]
xor edi, edi
inc edi
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x1a07e70
xor ecx, ecx
mov word [eax], cx
mov eax, dword [ebx + 0xc]
xor ecx, ecx
test eax, eax
je 0x1a4ed7a
mov dword [eax], ecx
jmp 0x1a4ed7a
test dword [ebx + 8], 0x10000000
jne 0x1a07e2f
mov edx, dword [ebp - 0x10]
mov ecx, esi
call fcn.01a92687
jmp 0x1a07e2f
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x1a4e71f
jmp 0x1a4e70f
test dword [esi + 0x44], 0x1000000
je 0x1a4e756
push edx
mov edx, dword [ebx + 8]
mov ecx, esi
push edi
or edx, 2
call fcn.019f1a20
movzx edi, al
test al, al
jne 0x1a07e64
jmp 0x1a07e2f
test edi, edi
je 0x1a07e0a
mov edx, dword [ebp - 0x10]
cmp byte [edx - 1], 5
je 0x1a4e7b7
cmp byte [edi + 7], 0
jge 0x1a07eb6
mov ecx, edi
shr ecx, 3
xor ecx, dword [edi]
xor ecx, dword [0x1ac8774]
xor ecx, esi
test cx, cx
jne 0x1a4ed65
jmp 0x1a4e8c7
push ecx
push 3
push edx
mov edx, esi
mov ecx, eax
call fcn.01a7ffd9
test eax, eax
js 0x1a07e0a
mov edx, dword [ebp - 0x10]
jmp 0x1a07ee6
test edx, edx
je 0x1a07d6b
test dx, dx
jne 0x1a4e6c6
mov eax, edx
shr eax, 0x10
push ecx
push eax
call fcn.01a1c525
mov edx, dword [ebp - 0x10]
jmp 0x1a4e6c8
mov eax, ecx
test eax, eax
jne 0x1a07d6b
sub edx, 8
mov dword [ebp - 0x10], edx
jmp 0x1a07d6b
or eax, 2
jmp 0x1a07d7c
or eax, 0x80000000
jmp 0x1a07d85
or eax, edi
jmp 0x1a07d92
or eax, edi
jmp 0x1a07da0
or eax, 0x2000000
jmp 0x1a07da9
or eax, 0x1000000
jmp 0x1a07db2
test byte [0x1ac58c8], 2
mov ecx, dword [eax]
je 0x1a4e71d
add ecx, 0xfffffff8
mov dword [eax], ecx
mov eax, dword [0x1ac8684]
test al, 1
je 0x1a07e2f
test al, 2
je 0x1a07e2f
cmp esi, dword [0x1ac8770]
je 0x1a07e2f
mov eax, dword fs:[0x30]
xor ecx, ecx
cmp dword [eax + 0x18], ecx
je 0x1a07e2f
jmp 0x1a07e8d
test byte [esi + 0x48], 1
jne 0x1a4e7a9
test dl, 7
jne 0x1a4e794
lea edi, [edx - 8]
cmp byte [edi + 7], 5
jne 0x1a4e773
movzx eax, byte [edi + 6]
shl eax, 3
sub edi, eax
test byte [edi + 7], 0x3f
jne 0x1a07ed1
push ecx
push ecx
push ecx
push edi
push 8
mov edx, esi
pop ecx
call fcn.01a36033
xor ecx, ecx
mov edi, ecx
jmp 0x1a07ed1
push ecx
push ecx
push ecx
push edx
push 9
mov edx, esi
pop ecx
call fcn.01a36033
xor ecx, ecx
jmp 0x1a07ed1
mov ecx, esi
call fcn.01a10f38
mov edi, eax
jmp 0x1a07ed1
cmp byte [edi + 7], 0
jge 0x1a4e7cb
mov edx, edi
mov ecx, esi
call fcn.01a9ae59
mov edx, dword [ebp - 0x10]
jmp 0x1a4e7fa
xor eax, eax
cmp dword [esi + 0x4c], eax
je 0x1a4e7f8
mov eax, dword [edi]
mov ecx, eax
xor ecx, dword [esi + 0x50]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x40], ecx
mov al, byte [ebp - 0x3e]
xor al, byte [ebp - 0x3f]
xor al, cl
shr ecx, 0x18
cmp cl, al
je 0x1a4e7f8
xor eax, eax
mov byte [ebp - 1], al
jmp 0x1a07df2
mov al, 1
mov byte [ebp - 1], al
test al, al
je 0x1a4e887
cmp byte [edi + 7], 0
jge 0x1a4e836
mov ecx, edi
shr ecx, 3
xor ecx, dword [edi]
xor ecx, dword [0x1ac8774]
xor ecx, esi
test cx, cx
je 0x1a4e825
xor ecx, ecx
mov eax, ecx
jmp 0x1a4e830
shr ecx, 0xd
mov eax, edi
sub eax, ecx
xor ecx, ecx
mov eax, dword [eax]
mov ax, word [eax + 0x14]
jmp 0x1a4e84f
xor ecx, ecx
cmp dword [esi + 0x4c], ecx
je 0x1a4e84c
mov eax, dword [edi]
test dword [esi + 0x4c], eax
je 0x1a4e847
xor eax, dword [esi + 0x50]
movzx eax, ax
jmp 0x1a4e84f
movzx eax, word [edi]
cmp byte [edi + 7], 4
movzx eax, ax
movzx eax, ax
mov dword [ebp - 0x28], eax
jne 0x1a4e87d
cmp dword [esi + 0x4c], ecx
je 0x1a4e875
mov eax, dword [edi]
test dword [esi + 0x4c], eax
je 0x1a4e86d
xor eax, dword [esi + 0x50]
movzx eax, ax
jmp 0x1a07e3c
movzx eax, word [edi]
jmp 0x1a07e3c
mov ecx, eax
shl ecx, 3
jmp 0x1a07e47
xor eax, eax
jmp 0x1a07df2
mov edx, dword [ebp - 0x10]
test dword [ebx + 8], 0x3c000102
lea ecx, [edx - 8]
mov eax, dword [ecx]
mov dword [ebp - 0x28], eax
jne 0x1a07ee6
cmp byte [ecx + 7], 5
jne 0x1a4e8c0
movzx eax, byte [ecx + 6]
shl eax, 3
sub ecx, eax
mov eax, dword [ebp - 0x28]
add ecx, 8
jmp 0x1a07f09
xor ecx, ecx
jmp 0x1a07f09
shr ecx, 0xd
mov eax, edi
sub eax, ecx
mov ecx, dword [eax]
mov dword [ebp - 0xc], ecx
test ecx, ecx
je 0x1a4ed65
mov esi, dword [ecx + 4]
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [edi + 4]
shr eax, 8
movzx edx, ax
mov eax, dword [ecx]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], edx
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov eax, dword [esi + 0x10]
xor eax, ecx
mov dword [ebp - 0x28], ecx
xor eax, esi
xor eax, dword [0x1ac8774]
mov esi, eax
movzx eax, ax
shr esi, 0x10
imul esi, edx
add esi, dword [ebp - 0x14]
add eax, esi
cmp eax, edi
je 0x1a4e933
mov edx, dword [ecx + 0xc]
xor eax, eax
push eax
push eax
push eax
push edi
push 3
pop ecx
call fcn.01a36033
jmp 0x1a07e5e
call fcn.019f1a00
test eax, eax
je 0x1a4e94c
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0x50]
add eax, 0x226
jmp 0x1a4e951
mov eax, 0x7ffe0380
xor edx, edx
inc edx
cmp byte [eax], 0
je 0x1a4e97a
mov eax, dword fs:[0x30]
test byte [eax + 0x240], dl
je 0x1a4e97a
mov ecx, dword [ebp - 0x28]
lea edx, [edi + 8]
push 2
mov ecx, dword [ecx + 0xc]
call fcn.01a92fe7
xor edx, edx
inc edx
cmp dx, word [0x7ffe036a]
sbb eax, eax
and eax, 0x64
mov dword [ebp - 0x2c], eax
xor eax, eax
mov ecx, eax
mov eax, dword [ebp - 0xc]
add eax, 0x10
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], eax
jmp 0x1a4e99e
mov eax, dword [ebp - 0x24]
mov esi, dword [eax]
mov eax, esi
shr eax, 0x10
mov dword [ebp - 0x18], esi
test eax, 0x8000
jne 0x1a4e9ca
mov ecx, esi
mov eax, esi
mov esi, dword [ebp - 0x24]
or ecx, 0x80000000
lock cmpxchg dword [esi], ecx
mov esi, dword [ebp - 0x18]
cmp eax, esi
je 0x1a4e9d9
mov ecx, dword [ebp - 0x28]
inc ecx
mov dword [ebp - 0x28], ecx
cmp ecx, dword [ebp - 0x2c]
jbe 0x1a4e99b
or esi, 0xffffffff
mov dword [ebp - 0x18], esi
mov byte [edi + 7], 0x80
cmp esi, 0xffffffff
jne 0x1a4ea0f
mov ecx, dword [ebp - 0xc]
lea edx, [edi + 8]
lea ecx, [ecx + 8]
jmp 0x1a4ea05
mov eax, dword [edi]
lea edx, [edi + 0x20]
movzx ecx, word [eax + 0x5c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + ecx*4 + 0x3c0]
add ecx, 0x48
call fcn.019f7900
jmp 0x1a07e5e
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x20]
mov eax, dword [eax + 0x18]
btr dword [eax], ecx
xor eax, eax
cmp word [edi + 0xc], ax
je 0x1a4ea5b
lea ecx, [edi + 8]
call fcn.019d8098
mov edx, eax
test edx, edx
je 0x1a4ea58
mov esi, dword [ebp - 0x14]
mov ecx, dword [edx - 4]
mov eax, dword [esi + 0x18]
mov edx, dword [edx]
shr ecx, 8
movzx edi, cx
btr dword [eax], edi
inc dword [ebp - 0x1c]
mov dword [ebp - 0x20], edi
test edx, edx
jne 0x1a4ea37
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0xc]
xor edx, edx
inc edx
mov ecx, dword [ebp - 0x1c]
movzx eax, si
inc ecx
mov esi, dword [ebp - 0x20]
add eax, ecx
shl esi, 0x10
or eax, esi
mov esi, dword [edi]
cmp ax, word [edi + 0x18]
jne 0x1a4ecb6
mov ecx, dword [esi]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x20], ecx
mov ecx, dword [esi + 0x58]
mov dword [ebp - 0x28], ecx
mov ecx, dword [esi + 0x54]
cmp ecx, edx
jne 0x1a4eaac
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x28]
jb 0x1a4eaac
sub ecx, dword [ebp - 0x28]
mov dword [ebp - 0x20], ecx
mov ecx, dword [esi]
mov edi, dword [ebp - 0x20]
cmp edi, dword [ecx + 0x14]
mov edi, dword [ebp - 0xc]
jb 0x1a4ecb6
mov eax, dword [edi]
xor esi, esi
mov dword [ebp - 0x1c], eax
add eax, 4
xchg dword [eax], esi
test esi, esi
je 0x1a4ebbb
push 0xfffffffffffffff9
lea edx, [esi + 0x1c]
pop edi
mov eax, dword [edx]
mov ecx, eax
and ecx, edi
lock cmpxchg dword [edx], ecx
jne 0x1a4eac8
mov edi, dword [ebp - 0xc]
cmp eax, 6
je 0x1a4eb91
mov ecx, dword [ebp - 0x1c]
mov edx, esi
call fcn.019f2c60
test al, al
je 0x1a4ebb8
mov edx, dword [esi + 0x1c]
test edx, edx
je 0x1a4ebb8
test dl, 2
jne 0x1a4ebb8
mov ecx, edx
lea edi, [esi + 0x1c]
or ecx, 2
mov eax, edx
lock cmpxchg dword [edi], ecx
mov edi, dword [ebp - 0xc]
cmp eax, edx
jne 0x1a4eaf0
mov edx, dword [esi]
xor eax, eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], eax
movzx ecx, word [edx + 0x5e]
add ecx, eax
and ecx, 0xf
lea edx, [edx + ecx*4]
add edx, 8
mov eax, dword [edx]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x1a4eb56
mov ecx, esi
lock cmpxchg dword [edx], ecx
test eax, eax
je 0x1a4ebb8
mov eax, dword [ebp - 0x28]
inc eax
mov dword [ebp - 0x28], eax
cmp eax, 0x10
jae 0x1a4eb9b
mov edx, dword [ebp - 0x24]
jmp 0x1a4eb23
mov eax, dword [eax + 0x1c]
test al, 1
jne 0x1a4eb45
mov eax, dword [ebp - 0x24]
mov edx, esi
add eax, 8
lea ecx, [eax + ecx*4]
mov eax, dword [ebp - 0x20]
lock cmpxchg dword [ecx], edx
cmp eax, dword [ebp - 0x20]
jne 0x1a4eb45
mov esi, dword [ebp - 0x20]
push 0xfffffffffffffffd
pop edi
lea edx, [esi + 0x1c]
mov eax, dword [edx]
mov ecx, eax
and ecx, edi
lock cmpxchg dword [edx], ecx
jne 0x1a4eb7f
mov edi, dword [ebp - 0xc]
cmp eax, 2
jne 0x1a4ebb8
mov eax, dword [esi]
mov ecx, dword [eax]
xor eax, eax
mov dword [esi], eax
jmp 0x1a4ebb0
mov eax, dword [esi]
movzx ecx, word [eax + 0x5c]
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + ecx*4 + 0x3c0]
add ecx, 0x48
lea edx, [esi + 0x20]
call fcn.019f7900
xor edx, edx
inc edx
test byte [edi + 0x16], 3
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax]
mov esi, dword [eax + 0xc]
mov eax, dword [edi]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x2c], eax
je 0x1a4ec14
mov eax, dword [edi + 4]
mov ecx, edi
add eax, 0x101f
and eax, 0xfffff000
mov dword [ebp - 0x34], eax
call fcn.019d4837
movzx ecx, word [edi + 0x18]
movzx eax, ax
imul ecx, eax
lea eax, [ebp - 0x38]
push eax
shl ecx, 3
mov dword [ebp - 0x30], ecx
mov ecx, dword [esi + 0xc]
call fcn.019df147
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x34]
push eax
push 0xffffffffffffffff
call fcn.01a22e60
mov eax, dword [edi + 4]
xor ecx, ecx
push ecx
mov dword [eax + 0xc], ecx
mov ecx, esi
mov edx, dword [edi + 4]
call fcn.019eff00
movzx eax, word [edi + 0x18]
mov ecx, dword [ebp - 0x2c]
neg eax
add ecx, 0x50
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], ecx
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x2c], edx
lea esi, [edi + eax]
mov eax, edi
lea ecx, [edx - 1]
push ebx
mov ebx, esi
mov esi, dword [ebp - 0x20]
lock cmpxchg8b qword [esi]
pop ebx
cmp eax, edi
mov ecx, esi
mov eax, dword [ebp - 0x28]
jne 0x1a4ec39
cmp edx, dword [ebp - 0x2c]
jne 0x1a4ec39
mov esi, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 0x24]
mov dword [esi + 4], ecx
lock inc dword [eax + 0x20]
push 0xfffffffffffffffe
mov dword [esi + 0x10], ecx
lea edx, [esi + 0x1c]
pop edi
mov eax, dword [edx]
mov ecx, eax
and ecx, edi
lock cmpxchg dword [edx], ecx
jne 0x1a4ec7c
cmp eax, 1
jmp 0x1a4eca0
push 0xfffffffffffffffd
pop edi
lea edx, [esi + 0x1c]
mov eax, dword [edx]
mov ecx, eax
and ecx, edi
lock cmpxchg dword [edx], ecx
jne 0x1a4ec93
cmp eax, 2
jne 0x1a07e5e
mov eax, dword [esi]
lea edx, [esi + 0x20]
mov ecx, dword [eax]
xor eax, eax
mov dword [esi], eax
jmp 0x1a4ea05
mov dword [edi + 0x10], eax
mov eax, dword [edi + 0x1c]
test al, 2
jne 0x1a07e5e
mov edx, edi
mov ecx, esi
call fcn.019f2c60
test al, al
je 0x1a07e5e
lea esi, [edi + 0x1c]
mov edx, dword [esi]
test edx, edx
je 0x1a07e5e
test dl, 2
jne 0x1a07e5e
mov ecx, edx
mov eax, edx
or ecx, 2
lock cmpxchg dword [esi], ecx
cmp eax, edx
jne 0x1a4ecd8
mov edx, dword [edi]
xor eax, eax
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], eax
movzx ecx, word [edx + 0x5e]
add ecx, eax
and ecx, 0xf
lea eax, [ecx + 2]
lea eax, [edx + eax*4]
mov esi, dword [eax]
mov dword [ebp - 0x2c], eax
test esi, esi
jne 0x1a4ed31
mov esi, dword [ebp - 0x2c]
mov ecx, edi
xor eax, eax
lock cmpxchg dword [esi], ecx
test eax, eax
je 0x1a07e5e
jmp 0x1a4ed54
mov eax, dword [esi + 0x1c]
test al, 1
jne 0x1a4ed54
mov eax, dword [ebp - 0x28]
mov edx, edi
add eax, 8
lea ecx, [eax + ecx*4]
mov eax, esi
lock cmpxchg dword [ecx], edx
cmp eax, esi
je 0x1a4ec8b
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x24], eax
cmp eax, 0x10
jb 0x1a4ed04
jmp 0x1a4e9ed
xor eax, eax
mov edx, esi
push eax
push eax
push eax
push edi
push 3
pop ecx
call fcn.01a36033
jmp 0x1a07e61
mov eax, dword [0x1ac8684]
test al, 1
je 0x1a07e2f
test al, 2
je 0x1a07e2f
cmp esi, dword [0x1ac8770]
je 0x1a07e2f
mov eax, dword fs:[0x30]
cmp dword [eax + 0x18], ecx
je 0x1a07e2f
jmp 0x1a07e84