Function at 0x694f00
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 0x695861
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 0x695846
mov eax, dword [ebp - 4]
call fcn.00696360
xor eax, eax
push ebp
push 0x695834
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00696328
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x717350]
call fcn.0040de8c
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.00408148
xor eax, eax
push ebp
push 0x695817
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.00685030
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x69507f
mov eax, dword [ebp - 4]
call fcn.00696b2c
cmp dword [eax + 8], 0
jle 0x694fef
mov eax, dword [ebp - 4]
call fcn.00696b2c
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
mov edi, eax
dec edi
test edi, edi
jl 0x69507f
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x69507b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
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 sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x717350]
call fcn.0040de8c
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.00408148
inc ebx
dec edi
jne 0x695004
test byte [ebp - 5], 4
je 0x69528e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
mov edi, eax
dec edi
test edi, edi
jl 0x695169
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
call fcn.0068f564
test al, al
je 0x695161
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x34]
call fcn.00691d28
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.00694ee8
test al, al
jne 0x695161
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00691cc8
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x717350]
call fcn.0040de8c
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.00408148
inc ebx
dec edi
jne 0x6950a2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
mov edi, eax
sub edi, 2
test edi, edi
jl 0x69529e
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
cmp dword [eax + 0x34], 0
je 0x695284
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x34]
call fcn.00691e30
add al, 0xfe
sub al, 2
jae 0x695284
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00692bdc
call fcn.0068f564
test al, al
jne 0x695284
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
lea edx, [ebp - 0x20]
call fcn.0068f16c
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00692bdc
lea edx, [ebp - 0x30]
call fcn.0068f16c
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x40]
call fcn.00411764
test al, al
je 0x695284
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x40]
call fcn.00411660
test al, al
je 0x69523b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00691e40
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x717350]
call fcn.0040de8c
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.00408148
inc ebx
dec edi
jne 0x695184
jmp 0x69529e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x695371
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x69537f
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x6952c8
dec esi
test esi, esi
jle 0x6952f8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00692bdc
cmp dword [eax + 0x34], 0
je 0x6952f8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00692bdc
mov eax, dword [eax + 0x34]
call fcn.00691e30
cmp al, 3
je 0x6952c7
test esi, esi
jl 0x69531d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00692bdc
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
pop edx
call fcn.006912d0
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x717350]
call fcn.0040de8c
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.00408148
dec ebx
test ebx, ebx
jne 0x6952bf
jmp 0x69537f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x695532
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x6954e9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x30]
call fcn.00685030
mov esi, eax
dec esi
cmp esi, 0
jl 0x69549e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0068e11c
mov edx, dword [0x681b80]
call fcn.0040805c
test al, al
jne 0x69547d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0068e11c
mov edx, dword [0x681788]
call fcn.0040805c
test al, al
jne 0x69547d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0068e11c
mov edx, dword [0x6823c4]
call fcn.0040805c
test al, al
jne 0x69547d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.0068e11c
mov edx, dword [0x682564]
call fcn.0040805c
test al, al
je 0x695494
test ebx, ebx
jg 0x69547d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
dec eax
jne 0x695494
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.00685078
dec esi
cmp esi, 0xffffffff
jne 0x6953cf
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
call fcn.0068e440
test al, al
je 0x6954df
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x30]
call fcn.00685030
test eax, eax
jne 0x6954df
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
call fcn.00407d8c
dec ebx
cmp ebx, 0xffffffff
jne 0x6953ae
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x717350]
call fcn.0040de8c
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.00408148
test byte [ebp - 5], 1
je 0x695679
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x695687
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
call fcn.0068e440
test al, al
jne 0x69566d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
call fcn.0068f564
test al, al
je 0x69566d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x34]
call fcn.00691e04
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
call fcn.00690f1c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
call fcn.0068e440
test al, al
je 0x695624
test ebx, ebx
jle 0x695617
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00692bdc
call fcn.0068f564
test al, al
je 0x695617
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00692bdc
mov eax, dword [eax + 0x34]
call fcn.00691e04
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00692bdc
mov eax, dword [eax + 0x34]
pop edx
call fcn.00691e0c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00685078
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x717350]
call fcn.0040de8c
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.00408148
dec ebx
cmp ebx, 0xffffffff
jne 0x695553
jmp 0x695687
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x6957bd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x695774
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
cmp dword [eax + 0x34], 0
je 0x695729
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.00691e04
test ax, ax
je 0x6956f3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
dec eax
jne 0x695729
mov eax, esi
call fcn.00691cbc
test al, al
jne 0x695729
mov eax, esi
call fcn.00691e14
test al, al
jne 0x695729
mov eax, esi
call fcn.00691e30
sub al, 2
jb 0x695722
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.00685030
dec eax
jne 0x695729
mov eax, esi
call fcn.00407d8c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
call fcn.0068e440
test al, al
je 0x69576a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
mov eax, dword [eax + 0x30]
call fcn.00685030
test eax, eax
jne 0x69576a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.00692bdc
call fcn.00407d8c
dec ebx
cmp ebx, 0xffffffff
jne 0x6956b6
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_MulDiv
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x717350]
call fcn.0040de8c
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.00408148
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x69581e
call fcn.00406ce8
test eax, eax
jne 0x6957da
mov ebx, 0x64
jmp 0x6957dc
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.00411684
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x717350]
call fcn.0040de8c
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.00408148
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x695868
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00409c70
ret