Function at 0x6dca04
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 0x6dd365
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 0x6dd34a
mov eax, dword [ebp - 4]
call fcn.006ddf4c
xor eax, eax
push ebp
push 0x6dd338
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.006ddf14
push 0
push 0
push 0
lea eax, [ebp - 0x50]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.0041478c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, dword [0x8a6b08]
call fcn.0040fa50
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.004083a0
xor eax, eax
push ebp
push 0x6dd31b
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.006ccb30
add eax, eax
add eax, eax
add eax, eax
mov dword [ebp - 0x10], eax
test byte [ebp - 5], 8
je 0x6dcb83
mov eax, dword [ebp - 4]
call fcn.006de718
cmp dword [eax + 8], 0
jle 0x6dcaf3
mov eax, dword [ebp - 4]
call fcn.006de718
mov edx, dword [eax]
call dword [edx + 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
mov edi, eax
dec edi
test edi, edi
jl 0x6dcb83
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x20]
cmp dword [eax + 8], 0
jle 0x6dcb7f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
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.0041478c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x58]
mov eax, dword [0x8a6b08]
call fcn.0040fa50
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.004083a0
inc ebx
dec edi
jne 0x6dcb08
test byte [ebp - 5], 4
je 0x6dcd92
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
mov edi, eax
dec edi
test edi, edi
jl 0x6dcc6d
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
call fcn.006d7054
test al, al
je 0x6dcc65
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x1c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x34]
call fcn.006d983c
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x18]
pop edx
pop ecx
call fcn.006dc9ec
test al, al
jne 0x6dcc65
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.006d97dc
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.0041478c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x5c]
mov eax, dword [0x8a6b08]
call fcn.0040fa50
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.004083a0
inc ebx
dec edi
jne 0x6dcba6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
mov edi, eax
sub edi, 2
test edi, edi
jl 0x6dcda2
inc edi
xor ebx, ebx
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
cmp dword [eax + 0x34], 0
je 0x6dcd88
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x34]
call fcn.006d9944
add al, 0xfe
sub al, 2
jae 0x6dcd88
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006da6d4
call fcn.006d7054
test al, al
jne 0x6dcd88
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
lea edx, [ebp - 0x20]
call fcn.006d6c5c
lea edx, [ebx + 1]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006da6d4
lea edx, [ebp - 0x30]
call fcn.006d6c5c
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x20]
lea eax, [ebp - 0x40]
call fcn.00414878
test al, al
je 0x6dcd88
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x40]
call fcn.00414768
test al, al
je 0x6dcd3f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.006d9954
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.0041478c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x60]
mov eax, dword [0x8a6b08]
call fcn.0040fa50
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.004083a0
inc ebx
dec edi
jne 0x6dcc88
jmp 0x6dcda2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
add eax, eax
add dword [ebp - 0xc], eax
test byte [ebp - 5], 2
je 0x6dce75
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x6dce83
inc dword [ebp - 0xc]
mov esi, ebx
dec esi
jmp 0x6dcdcc
dec esi
test esi, esi
jle 0x6dcdfc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006da6d4
cmp dword [eax + 0x34], 0
je 0x6dcdfc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006da6d4
mov eax, dword [eax + 0x34]
call fcn.006d9944
cmp al, 3
je 0x6dcdcb
test esi, esi
jl 0x6dce21
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006da6d4
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
pop edx
call fcn.006d8de4
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.0041478c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x64]
mov eax, dword [0x8a6b08]
call fcn.0040fa50
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.004083a0
dec ebx
test ebx, ebx
jne 0x6dcdc3
jmp 0x6dce83
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x6dd036
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x6dcfed
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x30]
call fcn.006ccb30
mov esi, eax
dec esi
cmp esi, 0
jl 0x6dcfa2
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006d5c0c
mov edx, dword [0x6c9640]
call fcn.004082b4
test al, al
jne 0x6dcf81
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006d5c0c
mov edx, dword [0x6c9248]
call fcn.004082b4
test al, al
jne 0x6dcf81
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006d5c0c
mov edx, dword [0x6c9e84]
call fcn.004082b4
test al, al
jne 0x6dcf81
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006d5c0c
mov edx, dword [0x6ca024]
call fcn.004082b4
test al, al
je 0x6dcf98
test ebx, ebx
jg 0x6dcf81
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
dec eax
jne 0x6dcf98
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x30]
mov edx, esi
call fcn.006ccb78
dec esi
cmp esi, 0xffffffff
jne 0x6dced3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
call fcn.006d5f30
test al, al
je 0x6dcfe3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x30]
call fcn.006ccb30
test eax, eax
jne 0x6dcfe3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
call fcn.00407fd8
dec ebx
cmp ebx, 0xffffffff
jne 0x6dceb2
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.0041478c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x68]
mov eax, dword [0x8a6b08]
call fcn.0040fa50
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.004083a0
test byte [ebp - 5], 1
je 0x6dd17d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x6dd18b
inc dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
call fcn.006d5f30
test al, al
jne 0x6dd171
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
call fcn.006d7054
test al, al
je 0x6dd171
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x34]
call fcn.006d9918
movzx esi, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
call fcn.006d8a30
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
call fcn.006d5f30
test al, al
je 0x6dd128
test ebx, ebx
jle 0x6dd11b
mov edx, ebx
dec edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006da6d4
call fcn.006d7054
test al, al
je 0x6dd11b
mov edi, ebx
dec edi
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006da6d4
mov eax, dword [eax + 0x34]
call fcn.006d9918
add ax, si
push eax
mov edx, edi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006da6d4
mov eax, dword [eax + 0x34]
pop edx
call fcn.006d9920
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006ccb78
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.0041478c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x6c]
mov eax, dword [0x8a6b08]
call fcn.0040fa50
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.004083a0
dec ebx
cmp ebx, 0xffffffff
jne 0x6dd057
jmp 0x6dd18b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
add dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
add dword [ebp - 0xc], eax
test byte [ebp - 5], 4
je 0x6dd2c1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x6dd278
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
cmp dword [eax + 0x34], 0
je 0x6dd22d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov esi, dword [eax + 0x34]
mov eax, esi
call fcn.006d9918
test ax, ax
je 0x6dd1f7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
dec eax
jne 0x6dd22d
mov eax, esi
call fcn.006d97d0
test al, al
jne 0x6dd22d
mov eax, esi
call fcn.006d9928
test al, al
jne 0x6dd22d
mov eax, esi
call fcn.006d9944
sub al, 2
jb 0x6dd226
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
call fcn.006ccb30
dec eax
jne 0x6dd22d
mov eax, esi
call fcn.00407fd8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
call fcn.006d5f30
test al, al
je 0x6dd26e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
mov eax, dword [eax + 0x30]
call fcn.006ccb30
test eax, eax
jne 0x6dd26e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x30]
mov edx, ebx
call fcn.006da6d4
call fcn.00407fd8
dec ebx
cmp ebx, 0xffffffff
jne 0x6dd1ba
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.0041478c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x70]
mov eax, dword [0x8a6b08]
call fcn.0040fa50
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.004083a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6dd322
call fcn.00406f94
test eax, eax
jne 0x6dd2de
mov ebx, 0x64
jmp 0x6dd2e0
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.0041478c
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x74]
mov eax, dword [0x8a6b08]
call fcn.0040fa50
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.004083a0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6dd36c
lea eax, [ebp - 0x74]
mov edx, 9
call fcn.00409edc
ret