Function at 0x7064f0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x16
push 0
push 0
dec ecx
jne 0x7064f9
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 8]
xor eax, eax
push ebp
push 0x706f56
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 8], 0
je 0x706f13
mov edx, 0x706f74
mov eax, dword [ebp - 4]
call fcn.006f9e54
test ebx, ebx
je 0x70654a
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
jne 0x706609
test esi, esi
jle 0x7065a8
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x30]
test eax, eax
jle 0x7065a8
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edi, eax
lea eax, [ebp - 0x1c]
push eax
imul eax, esi, 0x64
mov dword [ebp - 0x28], eax
fild dword [ebp - 0x28]
mov dword [ebp - 0x2c], edi
fild dword [ebp - 0x2c]
fdivp st(1)
call fcn.0040488c
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
lea eax, [ebp - 0x34]
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 0x10
lea edx, [ebp - 0x24]
xor ecx, ecx
mov eax, 0x706f88
call fcn.006639f4
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.006f9e54
cmp dword [ebp + 0x10], 0
jle 0x706609
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x24]
test eax, eax
jle 0x706609
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x24]
mov esi, eax
lea eax, [ebp - 0x38]
push eax
imul eax, dword [ebp + 0x10], 0x64
mov dword [ebp - 0x28], eax
fild dword [ebp - 0x28]
mov dword [ebp - 0x2c], esi
fild dword [ebp - 0x2c]
fdivp st(1)
call fcn.0040488c
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
lea eax, [ebp - 0x34]
mov dword [ebp - 0x24], eax
mov byte [ebp - 0x20], 0x10
lea edx, [ebp - 0x24]
xor ecx, ecx
mov eax, 0x706fa4
call fcn.006639f4
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
call fcn.006f9e54
mov eax, dword [ebp - 8]
mov edx, dword [0x4595d8]
call fcn.00405844
test al, al
je 0x70678f
test ebx, ebx
jne 0x70678f
test byte [ebp + 0xc], 0x80
je 0x7066d4
mov eax, dword [0x8e09e4]
cmp dword [eax], 0
je 0x7066d4
mov ebx, dword [0x8e06a8]
mov ebx, dword [ebx]
mov eax, dword [0x8e09e4]
mov eax, dword [eax]
call ebx
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x7066cd
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 8]
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x48], 0
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x24]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0
lea edx, [ebp - 0x4c]
mov ecx, 1
mov eax, 0x706fc0
call fcn.006639f4
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 4]
call fcn.006f9e54
push ebp
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.007062fc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x706f06
mov eax, dword [ebp - 0xc]
call fcn.00405630
ret
mov ebx, dword [ebp - 8]
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x24]
dec eax
jle 0x706705
mov edx, 1
mov eax, ebx
call fcn.00463808
push eax
xor edx, edx
mov eax, ebx
call fcn.00463808
mov edx, eax
pop eax
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov esi, eax
jmp 0x70670f
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x30]
mov esi, eax
lea eax, [ebp - 0x50]
push eax
mov dword [ebp - 0x78], esi
mov byte [ebp - 0x74], 0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0x70], eax
mov byte [ebp - 0x6c], 0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x24]
mov dword [ebp - 0x68], eax
mov byte [ebp - 0x64], 0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, eax
shl eax, 4
sub eax, edx
mov dword [ebp - 0x60], eax
mov byte [ebp - 0x5c], 0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x24]
mov edx, eax
shl eax, 4
sub eax, edx
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x54], 0
lea edx, [ebp - 0x78]
mov ecx, 4
mov eax, 0x706fe4
call fcn.006639f4
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 4]
call fcn.006f9e54
push ebp
mov eax, ebx
call fcn.007064c8
pop ecx
jmp 0x706f06
mov eax, dword [ebp - 8]
mov edx, dword [0x458d9c]
call fcn.00405844
test al, al
je 0x706963
test ebx, ebx
jne 0x706963
mov ebx, dword [ebp - 8]
cmp byte [ebx + 0x2c], 0
je 0x706895
test byte [ebp + 0xc], 4
jne 0x706875
lea eax, [ebp - 0x7c]
push eax
mov eax, ebx
call fcn.00461170
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x98], 0
mov eax, ebx
call fcn.00461158
mov dword [ebp - 0x94], eax
mov byte [ebp - 0x90], 0
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0x28], eax
fild dword [ebp - 0x28]
fmul qword [ebp + 0x14]
call fcn.0040488c
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
lea eax, [ebp - 0x24]
mov dword [ebp - 0x8c], eax
mov byte [ebp - 0x88], 0x10
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x24]
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fmul qword [ebp + 0x14]
call fcn.0040488c
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
lea eax, [ebp - 0x34]
mov dword [ebp - 0x84], eax
mov byte [ebp - 0x80], 0x10
lea edx, [ebp - 0x9c]
mov ecx, 3
mov eax, 0x707030
call fcn.006639f4
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 4]
call fcn.006f9e54
push ebp
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.007062fc
pop ecx
xor esi, esi
xor ebx, ebx
jmp 0x706899
mov dl, 1
mov eax, dword [0x458d9c]
call fcn.00460e44
mov esi, eax
mov edx, dword [ebp - 8]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 8]
mov byte [esi + 0x2c], 0
mov bl, 1
jmp 0x706899
mov esi, ebx
xor ebx, ebx
test esi, esi
je 0x706f06
lea eax, [ebp - 0xa0]
push eax
mov eax, esi
call fcn.00461170
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x98], 0
mov eax, esi
call fcn.00461158
mov dword [ebp - 0x94], eax
mov byte [ebp - 0x90], 0
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0x28], eax
fild dword [ebp - 0x28]
fmul qword [ebp + 0x14]
call fcn.0040488c
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
lea eax, [ebp - 0x24]
mov dword [ebp - 0x8c], eax
mov byte [ebp - 0x88], 0x10
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x24]
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fmul qword [ebp + 0x14]
call fcn.0040488c
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
lea eax, [ebp - 0x34]
mov dword [ebp - 0x84], eax
mov byte [ebp - 0x80], 0x10
lea edx, [ebp - 0x9c]
mov ecx, 3
mov eax, 0x70706c
call fcn.006639f4
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 4]
call fcn.006f9e54
push ebp
mov eax, esi
call fcn.007064dc
pop ecx
test bl, bl
je 0x706f06
mov eax, esi
call fcn.00405630
jmp 0x706f06
mov eax, dword [ebp - 8]
mov edx, dword [0x5ed268]
call fcn.00405844
test al, al
je 0x706a45
test byte [ebp + 0xc], 8
je 0x706a45
test ebx, ebx
jne 0x706a45
lea eax, [ebp - 0xa4]
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x98], 0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x24]
mov dword [ebp - 0x94], eax
mov byte [ebp - 0x90], 0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0x28], eax
fild dword [ebp - 0x28]
fmul qword [ebp + 0x14]
call fcn.0040488c
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
lea eax, [ebp - 0x24]
mov dword [ebp - 0x8c], eax
mov byte [ebp - 0x88], 0x10
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x24]
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fmul qword [ebp + 0x14]
call fcn.0040488c
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
lea eax, [ebp - 0x34]
mov dword [ebp - 0x84], eax
mov byte [ebp - 0x80], 0x10
lea edx, [ebp - 0x9c]
mov ecx, 3
mov eax, 0x7070ac
call fcn.006639f4
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 4]
call fcn.006f9e54
push ebp
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.007062fc
pop ecx
jmp 0x706f06
mov eax, dword [0x8e09e4]
cmp dword [eax], 0
je 0x706abd
mov eax, dword [ebp - 8]
mov edx, dword [0x8e09e4]
mov edx, dword [edx]
call fcn.00405844
test al, al
je 0x706abd
test ebx, ebx
jne 0x706abd
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x48], 0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x24]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0
lea edx, [ebp - 0x4c]
mov ecx, 1
mov eax, 0x706fc0
call fcn.006639f4
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 4]
call fcn.006f9e54
push ebp
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.007062fc
pop ecx
jmp 0x706f06
test byte [ebp + 0xc], 0x10
jne 0x706ad9
mov eax, dword [ebp - 8]
mov edx, dword [0x4595d8]
call fcn.00405844
test al, al
je 0x706d51
mov dl, 1
mov eax, dword [0x4595d8]
call fcn.00462d78
mov dword [ebp - 0x10], eax
test ebx, ebx
je 0x706b24
lea edx, [ebp - 0x18]
mov esi, ebx
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 0x10]
call fcn.00463698
mov edx, eax
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x18]
jmp 0x706bd4
xor eax, eax
push ebp
push 0x706b4a
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 8]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x706bd4
test byte [ebp + 0xc], 0x80
je 0x706c87
mov eax, dword [0x8e09e4]
cmp dword [eax], 0
je 0x706c87
mov ebx, dword [0x8e06a8]
mov ebx, dword [ebx]
mov eax, dword [0x8e09e4]
mov eax, dword [eax]
call ebx
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x706c80
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 8]
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x48], 0
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x24]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0
lea edx, [ebp - 0x4c]
mov ecx, 1
mov eax, 0x706fc0
call fcn.006639f4
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 4]
call fcn.006f9e54
push ebp
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.007062fc
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x706d44
mov eax, dword [ebp - 0xc]
call fcn.00405630
ret
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x24]
dec eax
jle 0x706cb8
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.00463808
push eax
xor edx, edx
mov eax, dword [ebp - 0x10]
call fcn.00463808
mov edx, eax
pop eax
sub eax, edx
cdq
xor eax, edx
sub eax, edx
mov esi, eax
jmp 0x706cc2
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov esi, eax
lea eax, [ebp - 0xb0]
push eax
mov dword [ebp - 0x78], esi
mov byte [ebp - 0x74], 0
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0x70], eax
mov byte [ebp - 0x6c], 0
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x24]
mov dword [ebp - 0x68], eax
mov byte [ebp - 0x64], 0
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, eax
shl eax, 4
sub eax, edx
mov dword [ebp - 0x60], eax
mov byte [ebp - 0x5c], 0
mov eax, dword [ebp - 0x10]
mov edx, dword [eax]
call dword [edx + 0x24]
mov edx, eax
shl eax, 4
sub eax, edx
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x54], 0
lea edx, [ebp - 0x78]
mov ecx, 4
mov eax, 0x706fe4
call fcn.006639f4
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 4]
call fcn.006f9e54
push ebp
mov eax, dword [ebp - 0x10]
call fcn.007064c8
pop ecx
mov eax, dword [ebp - 0x10]
call fcn.00405630
jmp 0x706f06
mov dl, 1
mov eax, dword [0x458d9c]
call fcn.00460e44
mov esi, eax
mov byte [esi + 0x2c], 0
test ebx, ebx
je 0x706da9
lea edx, [ebp - 0x18]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov edx, dword [ebp - 0x18]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov edx, dword [ebp - 0x14]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0
mov ecx, esi
mov dl, 1
mov eax, dword [0x4588ec]
call fcn.00460aa4
mov edi, eax
mov edx, edi
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov eax, edi
call fcn.00405630
jmp 0x706df3
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x30]
mov edx, eax
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x24]
mov edx, eax
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x38]
push 0
mov ecx, esi
mov dl, 1
mov eax, dword [0x4588ec]
call fcn.00460aa4
mov ebx, eax
mov eax, dword [ebp - 8]
push eax
xor ecx, ecx
xor edx, edx
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0x3c]
mov eax, ebx
call fcn.00405630
test byte [ebp + 0xc], 0x20
je 0x706eb3
mov byte [esi + 0x2c], 1
lea eax, [ebp - 0xb4]
push eax
mov eax, esi
call fcn.00461170
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x98], 0
mov eax, esi
call fcn.00461158
mov dword [ebp - 0x94], eax
mov byte [ebp - 0x90], 0
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0x28], eax
fild dword [ebp - 0x28]
fmul qword [ebp + 0x14]
call fcn.0040488c
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
lea eax, [ebp - 0x24]
mov dword [ebp - 0x8c], eax
mov byte [ebp - 0x88], 0x10
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x24]
mov dword [ebp - 0x2c], eax
fild dword [ebp - 0x2c]
fmul qword [ebp + 0x14]
call fcn.0040488c
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
lea eax, [ebp - 0x34]
mov dword [ebp - 0x84], eax
mov byte [ebp - 0x80], 0x10
lea edx, [ebp - 0x9c]
mov ecx, 3
mov eax, 0x707030
call fcn.006639f4
mov edx, dword [ebp - 0xb4]
mov eax, dword [ebp - 4]
call fcn.006f9e54
push ebp
xor edx, edx
mov eax, esi
call fcn.007062fc
pop ecx
jmp 0x706eff
lea eax, [ebp - 0xb8]
push eax
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x30]
mov dword [ebp - 0x4c], eax
mov byte [ebp - 0x48], 0
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x24]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0
lea edx, [ebp - 0x4c]
mov ecx, 1
mov eax, 0x7070e8
call fcn.006639f4
mov edx, dword [ebp - 0xb8]
mov eax, dword [ebp - 4]
call fcn.006f9e54
push ebp
mov eax, esi
call fcn.007064dc
pop ecx
mov eax, esi
call fcn.00405630
mov edx, 0x707110
mov eax, dword [ebp - 4]
call fcn.006f9e54
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x706f5d
lea eax, [ebp - 0xb8]
mov edx, 7
call fcn.004069ec
lea eax, [ebp - 0x7c]
call fcn.004069c8
lea eax, [ebp - 0x50]
call fcn.004069c8
lea eax, [ebp - 0x3c]
mov edx, 2
call fcn.004069ec
lea eax, [ebp - 0x1c]
call fcn.004069c8
ret