Function at 0x69ed78
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
push esi
push edi
mov dword [ebp - 4], edx
mov ebx, eax
cmp dword [ebx + 0x1c], 0
je 0x69f0b1
lea eax, [ebx + 8]
call fcn.00412218
test al, al
jne 0x69f0b1
lea eax, [ebx + 8]
call fcn.004121b0
push eax
lea eax, [ebx + 8]
call fcn.004121a0
mov ecx, eax
mov dl, 1
mov eax, dword [0x4e4628]
call fcn.004ee34c
mov dword [ebp - 8], eax
xor edx, edx
push ebp
push 0x69f0aa
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x30]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.00487b40
mov eax, dword [ebx + 0x1c]
call fcn.0056a028
mov esi, eax
mov edi, dword [ebx + 0x1c]
test byte [edi + 0x1c], 0x10
jne 0x69ee45
mov eax, edi
mov edx, dword [eax]
call dword [edx + 0xc0]
test al, al
je 0x69ee45
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x4c]
test al, al
je 0x69ee45
mov eax, dword [ebx + 0x1c]
test byte [eax + 0x188], 2
je 0x69ee45
mov dl, 0xc
mov eax, esi
call fcn.0056ab1c
push eax
mov eax, dword [ebp - 8]
call fcn.004eecc0
mov eax, dword [eax + 0x48]
pop edx
call fcn.004e794c
jmp 0x69ee5b
mov eax, dword [ebp - 8]
call fcn.004eecc0
mov eax, dword [eax + 0x48]
mov edx, dword [ebx + 0x1c]
mov edx, dword [edx + 0x7c]
call fcn.004e794c
mov eax, dword [ebp - 8]
call fcn.004eecc0
lea edx, [ebp - 0x20]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 0x34c]
mov edi, dword [eax + 0x10]
mov byte [ebp - 0xd], 0
cmp byte [ebx + 0x19], 0
je 0x69ee9c
cmp byte [ebx + 0x18], 0
je 0x69ee9c
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xc], eax
mov byte [ebp - 0xd], 0x32
jmp 0x69eee3
cmp byte [ebx + 0x18], 0
je 0x69eeb7
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xc], eax
mov byte [ebp - 0xd], 0x1e
jmp 0x69eee3
mov eax, dword [ebx + 0x1c]
mov edx, dword [eax]
call dword [edx + 0x7c]
test al, al
je 0x69eed4
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0xc], eax
jmp 0x69eee3
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 0x34c]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x1c]
test byte [eax + 0x1c], 0x10
jne 0x69ef2a
mov eax, dword [ebx + 0x1c]
mov edx, dword [eax]
call dword [edx + 0xc0]
test al, al
je 0x69ef2a
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x4c]
test al, al
je 0x69ef2a
mov eax, dword [ebx + 0x1c]
test byte [eax + 0x188], 2
je 0x69ef2a
mov edx, dword [ebp - 0xc]
mov eax, esi
call fcn.0056ab2c
mov dword [ebp - 0xc], eax
mov edx, edi
mov eax, esi
call fcn.0056ab2c
mov edi, eax
movzx eax, byte [ebp - 0xd]
push eax
mov eax, dword [ebp - 8]
call fcn.004eecc0
lea edx, [ebp - 0x20]
mov ecx, edi
call fcn.00504374
mov edi, dword [ebx + 0x1c]
mov eax, dword [edi + 0x34c]
cmp byte [eax + 0xc], 2
jne 0x69f02b
cmp byte [eax + 0x20], 0
je 0x69f003
mov eax, edi
mov edx, dword [eax]
call dword [edx + 0x7c]
test al, al
je 0x69ef77
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 0x34c]
mov edi, dword [eax + 0x10]
jmp 0x69ef83
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 0x34c]
mov edi, dword [eax + 0x1c]
mov eax, dword [ebx + 0x1c]
test byte [eax + 0x1c], 0x10
jne 0x69efbd
mov eax, dword [ebx + 0x1c]
mov edx, dword [eax]
call dword [edx + 0xc0]
test al, al
je 0x69efbd
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x4c]
test al, al
je 0x69efbd
mov eax, dword [ebx + 0x1c]
test byte [eax + 0x188], 2
je 0x69efbd
mov edx, edi
mov eax, esi
call fcn.0056ab2c
mov edi, eax
mov byte [ebp - 0xd], 0x64
push edi
lea esi, [ebp - 0x20]
lea edi, [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
mov eax, dword [ebx + 0x1c]
cmp byte [eax + 0x71], 1
je 0x69efe2
mov eax, dword [ebp - 0x30]
inc eax
mov dword [ebp - 0x28], eax
inc dword [ebp - 0x20]
jmp 0x69efec
mov eax, dword [ebp - 0x28]
dec eax
mov dword [ebp - 0x30], eax
dec dword [ebp - 0x18]
movzx eax, byte [ebp - 0xd]
push eax
mov eax, dword [ebp - 8]
call fcn.004eecc0
lea edx, [ebp - 0x30]
mov ecx, edi
call fcn.00504374
mov eax, dword [ebx + 0x1c]
mov edx, 0xfffffffe
call fcn.00517608
push eax
mov eax, dword [ebx + 0x1c]
mov edx, 0xfffffffe
call fcn.00517608
mov edx, eax
lea eax, [ebp - 0x20]
pop ecx
call fcn.00412284
jmp 0x69f050
mov eax, dword [ebx + 0x1c]
mov edx, 0xfffffffc
call fcn.00517608
push eax
mov eax, edi
mov edx, 0xfffffffc
call fcn.00517608
mov edx, eax
lea eax, [ebp - 0x20]
pop ecx
call fcn.00412284
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebx + 0x1c]
push dword [eax + 0x1c8]
mov eax, dword [ebp - 8]
call fcn.004eecc0
mov ecx, eax
movzx eax, byte [ebx + 4]
mov edx, dword [ebx + 0x1c]
mov edx, dword [edx + 0x34c]
mov edx, dword [edx + 0x24]
call fcn.0069ea18
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x44]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x69f0b1
mov eax, dword [ebp - 8]
call fcn.00408128
pop eax
jmp eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret