Function at 0x6d5178
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 0x6d5ad9
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 0x6d5abe
mov eax, dword [ebp - 4]
call fcn.006d6584
xor eax, eax
push ebp
push 0x6d5aac
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.006d654c
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411908
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x8d42e4]
call fcn.0040f404
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.004082d4
xor eax, eax
push ebp
push 0x6d5a8f
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.006c6540
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x6d52f7
mov eax, dword [ebp - 4]
call fcn.006d6d50
cmp dword [eax + 8], 0
jle 0x6d5267
mov eax, dword [ebp - 4]
call fcn.006d6d50
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
mov edi, eax
dec edi
test edi, edi
jl 0x6d52f7
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x6d52f3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
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.00413dd0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411908
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x8d42e4]
call fcn.0040f404
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.004082d4
inc ebx
dec edi
jne 0x6d527c
test byte [ebp - 5], 4
je 0x6d5506
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
mov edi, eax
dec edi
test edi, edi
jl 0x6d53e1
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
call fcn.006d0974
test al, al
je 0x6d53d9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x34]
call fcn.006d30e8
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.006d5160
test al, al
jne 0x6d53d9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.006d3088
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.00413dd0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411908
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x8d42e4]
call fcn.0040f404
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.004082d4
inc ebx
dec edi
jne 0x6d531a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
mov edi, eax
sub edi, 2
test edi, edi
jl 0x6d5516
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
cmp dword [eax + 0x34], 0
je 0x6d54fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x34]
call fcn.006d31f0
add al, 0xfe
sub al, 2
jae 0x6d54fc
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006d3f3c
call fcn.006d0974
test al, al
jne 0x6d54fc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
lea edx, [ebp - 0x20]
call fcn.006d0634
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006d3f3c
lea edx, [ebp - 0x30]
call fcn.006d0634
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x40]
call fcn.00411950
test al, al
je 0x6d54fc
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x40]
call fcn.004118e4
test al, al
je 0x6d54b3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.006d3200
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.00413dd0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411908
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x8d42e4]
call fcn.0040f404
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.004082d4
inc ebx
dec edi
jne 0x6d53fc
jmp 0x6d5516
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x6d55e9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x6d55f7
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x6d5540
dec esi
test esi, esi
jle 0x6d5570
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006d3f3c
cmp dword [eax + 0x34], 0
je 0x6d5570
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006d3f3c
mov eax, dword [eax + 0x34]
call fcn.006d31f0
cmp al, 3
je 0x6d553f
test esi, esi
jl 0x6d5595
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006d3f3c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
pop edx
call fcn.006d26e0
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.00413dd0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411908
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x8d42e4]
call fcn.0040f404
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.004082d4
dec ebx
test ebx, ebx
jne 0x6d5537
jmp 0x6d55f7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x6d57aa
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x6d5761
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x30]
call fcn.006c6540
mov esi, eax
dec esi
cmp esi, 0
jl 0x6d5716
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006cf5ec
mov edx, dword [0x6c3150]
call fcn.004081e8
test al, al
jne 0x6d56f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006cf5ec
mov edx, dword [0x6c2d58]
call fcn.004081e8
test al, al
jne 0x6d56f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006cf5ec
mov edx, dword [0x6c3994]
call fcn.004081e8
test al, al
jne 0x6d56f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006cf5ec
mov edx, dword [0x6c3b34]
call fcn.004081e8
test al, al
je 0x6d570c
test ebx, ebx
jg 0x6d56f5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
dec eax
jne 0x6d570c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006c6588
dec esi
cmp esi, 0xffffffff
jne 0x6d5647
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
call fcn.006cf908
test al, al
je 0x6d5757
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x30]
call fcn.006c6540
test eax, eax
jne 0x6d5757
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
call fcn.00407f90
dec ebx
cmp ebx, 0xffffffff
jne 0x6d5626
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.00413dd0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411908
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x8d42e4]
call fcn.0040f404
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.004082d4
test byte [ebp - 5], 1
je 0x6d58f1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x6d58ff
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
call fcn.006cf908
test al, al
jne 0x6d58e5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
call fcn.006d0974
test al, al
je 0x6d58e5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x34]
call fcn.006d31c4
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
call fcn.006d232c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
call fcn.006cf908
test al, al
je 0x6d589c
test ebx, ebx
jle 0x6d588f
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006d3f3c
call fcn.006d0974
test al, al
je 0x6d588f
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006d3f3c
mov eax, dword [eax + 0x34]
call fcn.006d31c4
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006d3f3c
mov eax, dword [eax + 0x34]
pop edx
call fcn.006d31cc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006c6588
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.00413dd0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411908
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x8d42e4]
call fcn.0040f404
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.004082d4
dec ebx
cmp ebx, 0xffffffff
jne 0x6d57cb
jmp 0x6d58ff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x6d5a35
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x6d59ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
cmp dword [eax + 0x34], 0
je 0x6d59a1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.006d31c4
test ax, ax
je 0x6d596b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
dec eax
jne 0x6d59a1
mov eax, esi
call fcn.006d307c
test al, al
jne 0x6d59a1
mov eax, esi
call fcn.006d31d4
test al, al
jne 0x6d59a1
mov eax, esi
call fcn.006d31f0
sub al, 2
jb 0x6d599a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006c6540
dec eax
jne 0x6d59a1
mov eax, esi
call fcn.00407f90
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
call fcn.006cf908
test al, al
je 0x6d59e2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
mov eax, dword [eax + 0x30]
call fcn.006c6540
test eax, eax
jne 0x6d59e2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006d3f3c
call fcn.00407f90
dec ebx
cmp ebx, 0xffffffff
jne 0x6d592e
mov eax, dword [ebp - 0x10]
push eax
push 0x64
mov eax, dword [ebp - 0xc]
push eax
call fcn.00413dd0
push eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411908
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x8d42e4]
call fcn.0040f404
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.004082d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6d5a96
call fcn.00406fa8
test eax, eax
jne 0x6d5a52
mov ebx, 0x64
jmp 0x6d5a54
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.00411908
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x8d42e4]
call fcn.0040f404
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.004082d4
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6d5ae0
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00409d8c
ret