Function at 0x4fa4d0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x6c4297
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x48
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov esi, ecx
mov dword [esp + 0x20], ebp
mov al, byte [esp + 0x6c]
mov dword [esp + 0x60], 1
mov byte [esp + 0x24], al
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x30], ebp
push 6
push 0x7147a4
lea ecx, [esp + 0x18]
mov byte [esp + 0x68], 2
call fcn.0061d820
push 4
lea ecx, [esp + 0x70]
mov byte [esp + 0x64], 3
call fcn.0061daa0
push 5
lea ecx, [esp + 0x70]
mov byte [esp + 0x1c], al
call fcn.0061daa0
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x18]
and eax, 0xff
cmp eax, 4
ja case.default.0x4fa70c
jmp dword [eax*4 + 0x4faf3c]
mov eax, dword [esp + 0x14]
and eax, 0xff
dec eax
jne case.default.0x4fa70c
add esi, 8
push 8
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 7
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 6
call fcn.0061daa0
and eax, 0xff
mov ecx, esi
push eax
push 5
call fcn.0061daa0
and eax, 0xff
lea ecx, [esp + 0x50]
push eax
push str._02x_02x_02x_02x
push ecx
call fcn.006a6fa5
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x18
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x4fa5dc
call fcn.006a64db
mov edi, dword [esp + 0x28]
test edi, edi
je 0x4fa607
mov al, byte [edi - 1]
test al, al
je 0x4fa607
cmp al, 0xff
je 0x4fa607
test ebx, ebx
jne 0x4fa633
dec al
push ebx
lea ecx, [esp + 0x28]
mov byte [edi - 1], al
call fcn.004138c0
jmp case.default.0x4fa70c
test ebx, ebx
jne 0x4fa61b
push 1
lea ecx, [esp + 0x28]
call fcn.004138c0
jmp case.default.0x4fa70c
mov eax, dword [esp + 0x30]
cmp eax, 0x1f
ja 0x4fa628
cmp eax, ebx
jae 0x4fa641
push 1
lea ecx, [esp + 0x28]
call fcn.004138c0
push ebx
lea ecx, [esp + 0x28]
call fcn.00414a60
mov edi, dword [esp + 0x28]
mov ecx, ebx
lea esi, [esp + 0x44]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov byte [eax + ebx], 0
jmp case.default.0x4fa70c
mov eax, dword [esp + 0x14]
and eax, 0xff
dec eax
je 0x4fa6dd
dec eax
je 0x4fa6be
dec eax
jne case.default.0x4fa70c
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x6df3f8]
fstp qword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
push edx
push eax
lea ecx, [esp + 0x4c]
push str._.2f
push ecx
call fcn.006a6fa5
add esp, 0x10
jmp 0x4fa7be
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x6e0f70]
jmp 0x4fa699
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
jmp 0x4fa693
mov ecx, dword [esp + 0x14]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 0x18
ja case.default.0x4fa70c
jmp dword [eax*4 + 0x4faf50]
lea edx, [esp + 0x24]
lea ecx, [esi + 8]
push edx
push 0x6c
push 0x62
push 5
call fcn.0061daa0
and al, 2
jmp 0x4fa7a1
lea eax, [esp + 0x24]
lea ecx, [esi + 8]
push eax
push 0x63
push 0x64
push 5
call fcn.0061daa0
and al, 4
jmp 0x4fa7a1
lea ecx, [esp + 0x24]
push ecx
push 0x64
push 0x63
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 8
jmp 0x4fa7a1
lea edx, [esp + 0x24]
lea ecx, [esi + 8]
push edx
push 0x63
push 0x64
push 5
call fcn.0061daa0
and al, 0x10
jmp 0x4fa7a1
lea eax, [esp + 0x24]
lea ecx, [esi + 8]
push eax
push 0x8b
push 0x8a
push 5
call fcn.0061daa0
and al, 0x20
jmp 0x4fa7a1
lea ecx, [esp + 0x24]
push ecx
push 0x66
push 0x65
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x40
push eax
mov ecx, esi
call fcn.004fea90
push ebp
lea edx, [esp + 0x48]
push 0x713498
push edx
call fcn.006a6fa5
add esp, 0xc
xor ebp, ebp
cmp dword [esp + 0x2c], ebp
jne 0x4fadcc
lea edi, [esp + 0x44]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x4fa7e2
call fcn.006a64db
mov edi, dword [esp + 0x28]
test edi, edi
je 0x4fad75
mov al, byte [edi - 1]
test al, al
je 0x4fad75
cmp al, 0xff
je 0x4fad75
test ebx, ebx
jne 0x4fad9e
dec al
push ebx
lea ecx, [esp + 0x28]
mov byte [edi - 1], al
call fcn.004138c0
jmp 0x4fadcc
lea edx, [esp + 0x24]
lea ecx, [esi + 8]
push edx
push 0x66
push 0x65
push 5
call fcn.0061daa0
and al, 0x80
jmp 0x4fa7a1
lea eax, [esp + 0x24]
lea ecx, [esi + 8]
push eax
push 0x64
push 0x63
push 6
call fcn.0061daa0
and al, 1
jmp 0x4fa7a1
lea ecx, [esp + 0x24]
push ecx
push 0x64
push 0x63
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 2
jmp 0x4fa7a1
lea edx, [esp + 0x24]
lea ecx, [esi + 8]
push edx
push 0x6a
push 0x69
push 6
call fcn.0061daa0
and al, 4
jmp 0x4fa7a1
lea eax, [esp + 0x24]
lea ecx, [esi + 8]
push eax
push 0x6a
push 0x69
push 6
call fcn.0061daa0
and al, 8
jmp 0x4fa7a1
lea ecx, [esp + 0x24]
push ecx
push 0x64
push 0x63
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x10
jmp 0x4fa7a1
lea edx, [esp + 0x24]
lea ecx, [esi + 8]
push edx
push 0x63
push 0x64
push 7
call fcn.0061daa0
and al, 1
jmp 0x4fa7a1
lea eax, [esp + 0x24]
lea ecx, [esi + 8]
push eax
push 0x64
push 0x63
push 7
call fcn.0061daa0
and al, 2
jmp 0x4fa7a1
lea ecx, [esp + 0x24]
push ecx
push 0x64
push 0x63
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 4
jmp 0x4fa7a1
lea edx, [esp + 0x24]
lea ecx, [esi + 8]
push edx
push 0x64
push 0x63
push 7
call fcn.0061daa0
and al, 8
jmp 0x4fa7a1
lea eax, [esp + 0x24]
lea ecx, [esi + 8]
push eax
push 0x64
push 0x67
push 7
call fcn.0061daa0
and al, 0x10
jmp 0x4fa7a1
lea ecx, [esp + 0x24]
push ecx
push 0x66
push 0x65
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x20
jmp 0x4fa7a1
lea edx, [esp + 0x24]
push edx
push 0x64
push 0x63
push 7
jmp 0x4fa797
lea eax, [esp + 0x24]
lea ecx, [esi + 8]
push eax
push 0x64
push 0x63
push 8
call fcn.0061daa0
and al, 1
jmp 0x4fa7a1
lea ecx, [esp + 0x24]
push ecx
push 0x6a
push 0x69
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 4
jmp 0x4fa7a1
lea edx, [esp + 0x24]
lea ecx, [esi + 8]
push edx
push 0x83
push 0x82
push 8
call fcn.0061daa0
and al, 0x10
jmp 0x4fa7a1
lea eax, [esp + 0x24]
lea ecx, [esi + 8]
push eax
push 0x83
push 0x82
push 8
call fcn.0061daa0
and al, 0x20
jmp 0x4fa7a1
lea ecx, [esp + 0x24]
push ecx
push 0x82
push 0x83
push 8
jmp 0x4fa797
lea edx, [esp + 0x24]
lea ecx, [esi + 8]
push edx
push 0x82
push 0x83
push 8
call fcn.0061daa0
and al, 0x80
jmp 0x4fa7a1
mov eax, dword [esp + 0x14]
and eax, 0xff
dec eax
cmp eax, 0xb
ja case.default.0x4fa70c
jmp dword [eax*4 + 0x4fafb4]
lea ecx, [esp + 0x24]
push ecx
push 0x64
push 0x63
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 2
jmp 0x4fa7a1
lea edx, [esp + 0x24]
lea ecx, [esi + 8]
push edx
push 0x64
push 0x63
push 5
call fcn.0061daa0
and al, 4
jmp 0x4fa7a1
lea eax, [esp + 0x24]
lea ecx, [esi + 8]
push eax
push 0x63
push 0x64
push 5
call fcn.0061daa0
and al, 8
jmp 0x4fa7a1
lea ecx, [esp + 0x24]
push ecx
push 0x64
push 0x63
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x10
jmp 0x4fa7a1
lea edx, [esp + 0x24]
lea ecx, [esi + 8]
push edx
push 0x64
push 0x63
push 5
call fcn.0061daa0
and al, 0x20
jmp 0x4fa7a1
lea eax, [esp + 0x24]
push eax
push 0x64
push 0x63
jmp 0x4fa795
lea ecx, [esp + 0x24]
push ecx
push 0x64
push 0x63
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x80
jmp 0x4fa7a1
lea edx, [esp + 0x24]
lea ecx, [esi + 8]
push edx
push 0x64
push 0x63
push 6
call fcn.0061daa0
and al, 4
jmp 0x4fa7a1
lea eax, [esp + 0x24]
lea ecx, [esi + 8]
push eax
push 0x66
push 0x65
push 6
call fcn.0061daa0
and al, 8
jmp 0x4fa7a1
lea ecx, [esp + 0x24]
push ecx
push 0x6a
push 0x69
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x20
jmp 0x4fa7a1
lea edx, [esp + 0x24]
push edx
push 0x64
push 0x63
push 6
jmp 0x4fa797
lea eax, [esp + 0x24]
lea ecx, [esi + 8]
push eax
push 0x64
push 0x63
push 6
call fcn.0061daa0
and al, 0x80
jmp 0x4fa7a1
mov ecx, dword [esp + 0x14]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 5
ja case.default.0x4fa70c
jmp dword [eax*4 + 0x4fafe4]
push 5
jmp 0x4fab72
push 6
jmp 0x4fab72
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
lea ebp, [eax + eax*4]
shl ebp, 1
jmp case.default.0x4fa70c
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
lea ecx, [eax + eax*4]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebp, edx
jmp case.default.0x4fa70c
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
cmp eax, 3
ja case.default.0x4fabc9
jmp dword [eax*4 + 0x4faffc]
push 0xf4
jmp 0x4fabea
push 0xf6
jmp 0x4fabea
push 0xf5
jmp 0x4fabea
push 0xea
push 5
lea ecx, [esp + 0x18]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x14]
mov ecx, esp
mov dword [esp + 0x1c], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x38]
push eax
call fcn.0061ca80
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x6dd1fc]
mov ebx, eax
mov byte [esp + 0x60], 4
cmp edi, ebx
jae 0x4fac2b
mov ebx, edi
lea ecx, [esp + 0x24]
cmp ecx, esi
jne 0x4faca0
cmp dword [esp + 0x2c], ebx
jae 0x4fac3e
call fcn.006a6707
lea ecx, [esp + 0x24]
call fcn.00414b70
mov eax, dword [esp + 0x2c]
sub eax, ebx
cmp eax, edi
jae 0x4fac53
mov edi, eax
test edi, edi
jbe 0x4fac8e
mov edx, dword [esp + 0x28]
sub eax, edi
push eax
lea ecx, [edx + ebx]
lea edx, [ecx + edi]
push edx
push ecx
call fcn.006a6c70
mov esi, dword [esp + 0x38]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x24]
push 0
push esi
call fcn.00414230
test al, al
je 0x4fac8e
push esi
lea ecx, [esp + 0x28]
call fcn.00414210
push 0
push 0
lea ecx, [esp + 0x2c]
call fcn.004140f0
jmp 0x4fad29
test ebx, ebx
jbe 0x4faced
cmp ebx, eax
jne 0x4faced
mov eax, dword [esi + 4]
test eax, eax
jne 0x4facb4
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4faced
push 1
lea ecx, [esp + 0x28]
call fcn.004138c0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4facd1
mov eax, 0x6dd1f8
mov dword [esp + 0x28], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x2c], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x30], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x4fad29
push 1
push ebx
lea ecx, [esp + 0x2c]
call fcn.00414230
test al, al
je 0x4fad29
mov esi, dword [esi + 4]
test esi, esi
jne 0x4fad09
mov esi, 0x6dd1f8
mov edi, dword [esp + 0x28]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0x38]
mov byte [esp + 0x60], 3
test eax, eax
je case.default.0x4fa70c
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4fad51
cmp al, 0xff
je 0x4fad51
dec al
mov byte [ecx], al
jmp case.default.0x4fa70c
push ecx
call fcn.006a64d0
add esp, 4
jmp case.default.0x4fa70c
push 0xa
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov ebp, eax
jmp case.default.0x4fa70c
test ebx, ebx
jne 0x4fad86
push 1
lea ecx, [esp + 0x28]
call fcn.004138c0
jmp 0x4fadcc
mov eax, dword [esp + 0x30]
cmp eax, 0x1f
ja 0x4fad93
cmp eax, ebx
jae 0x4fadac
push 1
lea ecx, [esp + 0x28]
call fcn.004138c0
push ebx
lea ecx, [esp + 0x28]
call fcn.00414a60
mov edi, dword [esp + 0x28]
mov ecx, ebx
lea esi, [esp + 0x44]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov byte [ecx + ebx], 0
mov ebp, dword [esp + 0x68]
mov dl, byte [esp + 0x24]
xor edi, edi
mov byte [ebp], dl
mov edx, dword [esp + 0x2c]
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov esi, dword [0x6dd1fc]
mov ebx, edx
cmp esi, ebx
jae 0x4fadf4
mov ebx, esi
lea eax, [esp + 0x24]
cmp ebp, eax
jne 0x4fae53
cmp ebx, edi
jbe 0x4fae05
call fcn.006a6707
mov ecx, ebp
call fcn.00414b70
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x4fae17
mov esi, eax
cmp esi, edi
jbe 0x4fae4a
mov ecx, dword [ebp + 4]
sub eax, esi
add ebx, ecx
push eax
lea ecx, [ebx + esi]
push ecx
push ebx
call fcn.006a6c70
mov ebx, dword [ebp + 8]
add esp, 0xc
sub ebx, esi
mov ecx, ebp
push edi
push ebx
call fcn.00414230
test al, al
je 0x4fae4a
push ebx
mov ecx, ebp
call fcn.00414210
mov ecx, ebp
call fcn.00414b70
jmp 0x4faecf
cmp ebx, edi
jbe 0x4fae94
cmp ebx, edx
jne 0x4fae94
mov eax, dword [esp + 0x28]
mov ecx, 0x6dd1f8
cmp eax, edi
je 0x4fae6a
mov ecx, eax
cmp byte [ecx - 1], 0xfe
jae 0x4fae94
cmp eax, edi
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
jne 0x4fae82
mov eax, 0x6dd1f8
mov dword [ebp + 8], edx
mov edx, dword [esp + 0x30]
mov dword [ebp + 4], eax
mov dword [ebp + 0xc], edx
inc byte [eax - 1]
jmp 0x4faecf
push 1
push ebx
mov ecx, ebp
call fcn.00414230
test al, al
je 0x4faecf
mov esi, dword [esp + 0x28]
cmp esi, edi
jne 0x4faeaf
mov esi, 0x6dd1f8
mov edi, dword [ebp + 4]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 4]
mov dword [ebp + 8], ebx
add eax, ebx
xor edi, edi
mov byte [eax], 0
mov dword [esp + 0x20], 1
lea ecx, [esp + 0x10]
mov byte [esp + 0x60], 2
call fcn.0061d8c0
mov eax, dword [esp + 0x28]
cmp eax, edi
je 0x4faf0a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4faf01
cmp al, 0xff
je 0x4faf01
dec al
mov byte [ecx], al
jmp 0x4faf0a
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x6c]
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
mov byte [esp + 0x60], 0
call fcn.0061d8c0
mov ecx, dword [esp + 0x58]
pop edi
mov eax, ebp
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x54
ret 8