Function at 0x4a6860
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x519f55
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [0x79b0b4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x64], edi
mov esi, dword [ebp + 8]
push esi
mov dword [ebp - 0x74], esi
push dword [esi + 4]
push dword [esi]
call fcn.0049ba40
mov eax, dword [esi]
add esp, 0xc
mov dword [esi + 4], eax
xor eax, eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x78], eax
mov esi, dword [edi + 0x2c]
xor ecx, ecx
mov dword [ebp - 4], eax
mov eax, 0x51eb851f
mov dword [ebp - 0x48], ecx
mov ecx, dword [edi + 0x30]
sub ecx, esi
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4a6c21
xor edi, edi
mov dword [ebp - 0x5c], edi
lea eax, [edi + esi]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x18], 0
mov ecx, 0x7fffffff
mov dword [ebp - 0x14], 0
cmp dword [eax + 0x14], 0x10
mov esi, dword [eax + 0x10]
mov dword [ebp - 0x44], eax
jb 0x4a6916
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
cmp esi, 0x10
jae 0x4a692c
movups xmm0, xmmword [eax]
mov edi, 0xf
mov dword [ebp - 0x4c], edi
movups xmmword [ebp - 0x28], xmm0
jmp 0x4a6994
mov edi, esi
or edi, 0xf
cmp edi, 0x7fffffff
cmova edi, ecx
mov dword [ebp - 0x4c], edi
lea eax, [edi + 1]
cmp eax, 0x1000
jb 0x4a696e
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4a6e84
push ecx
call fcn.00462d48
add esp, 4
test eax, eax
je 0x4a6e89
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4a6981
test eax, eax
je 0x4a697f
push eax
call fcn.00462d48
add esp, 4
mov ecx, eax
jmp 0x4a6981
xor ecx, ecx
lea eax, [esi + 1]
mov dword [ebp - 0x28], ecx
push eax
push dword [ebp - 0x44]
push ecx
call fcn.00464550
add esp, 0xc
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], esi
cmp edi, 0x10
mov byte [ebp - 4], 1
lea edx, [ebp - 0x28]
cmovae edx, dword [ebp - 0x28]
test esi, esi
je 0x4a69ce
or ecx, 0xffffffff
lea eax, [esi - 1]
cmp eax, ecx
cmovb ecx, eax
add ecx, edx
cmp byte [ecx], 0x2e
je 0x4a69ca
nop
cmp ecx, edx
je 0x4a69ce
dec ecx
cmp byte [ecx], 0x2e
jne 0x4a69c0
sub ecx, edx
jmp 0x4a69d1
or ecx, 0xffffffff
cmp ecx, 0xffffffff
je 0x4a6ac2
inc ecx
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x2c], 0xf
cmp esi, ecx
jb 0x4a6e7f
sub esi, ecx
lea eax, [ebp - 0x28]
or edi, 0xffffffff
cmp esi, 0xffffffff
cmovb edi, esi
cmp dword [ebp - 0x4c], 0x10
cmovae eax, dword [ebp - 0x28]
add eax, ecx
mov dword [ebp - 0x4c], eax
cmp edi, 0xf
ja 0x4a6a26
push edi
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0x30], edi
push eax
call fcn.00464550
mov byte [ebp + edi - 0x40], 0
jmp 0x4a6a79
cmp edi, 0x7fffffff
ja 0x4a6e7a
mov eax, edi
or eax, 0xf
cmp eax, 0x7fffffff
jbe 0x4a6a45
mov eax, 0x7fffffff
jmp 0x4a6a50
cmp eax, 0x16
mov ecx, 0x16
cmovb eax, ecx
mov dword [ebp - 0x44], eax
lea ecx, [ebp - 0x40]
inc eax
push eax
call fcn.0042d550
push edi
push dword [ebp - 0x4c]
mov esi, eax
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x44]
push esi
mov dword [ebp - 0x2c], eax
call fcn.00464550
mov byte [esi + edi], 0
mov dword [ebp - 0x40], esi
mov ecx, dword [ebp - 0x14]
add esp, 0xc
cmp ecx, 0x10
jb 0x4a6ab0
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4a6aa6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a6e89
push ecx
push edx
call fcn.00462fc9
add esp, 8
movups xmm0, xmmword [ebp - 0x40]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [ebp - 0x30]
movq qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x6c]
je 0x4a6b99
mov dword [ecx], 0
lea edi, [ebp - 0x28]
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
cmp dword [ebp - 0x14], 0x10
mov eax, dword [ebp - 0x18]
cmovae edi, dword [ebp - 0x28]
mov dword [ebp - 0x44], eax
cmp eax, 0x10
jae 0x4a6b17
movups xmm0, xmmword [edi]
mov esi, 0xf
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], esi
add ecx, 0x18
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x7c], ecx
jmp 0x4a6bb2
mov esi, eax
mov eax, 0x7fffffff
or esi, 0xf
cmp esi, 0x7fffffff
cmova esi, eax
lea eax, [esi + 1]
cmp eax, 0x1000
jb 0x4a6b5b
lea ecx, [eax + 0x23]
cmp ecx, eax
jbe 0x4a6e84
push ecx
call fcn.00462d48
add esp, 4
test eax, eax
je 0x4a6e89
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x4a6b6e
test eax, eax
je 0x4a6b6c
push eax
call fcn.00462d48
add esp, 4
mov ecx, eax
jmp 0x4a6b6e
xor ecx, ecx
mov eax, dword [ebp - 0x58]
mov dword [eax], ecx
mov eax, dword [ebp - 0x44]
inc eax
push eax
push edi
push ecx
call fcn.00464550
mov ecx, dword [ebp - 0x58]
add esp, 0xc
mov eax, dword [ebp - 0x44]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], esi
add ecx, 0x18
mov dword [ebp - 0x58], ecx
mov dword [ebp - 0x7c], ecx
jmp 0x4a6bb2
lea eax, [ebp - 0x28]
push eax
push ecx
lea ecx, [ebp - 0x80]
call fcn.0042fd10
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x14]
mov byte [ebp - 4], 0
cmp ecx, 0x10
jb 0x4a6bea
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4a6be0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a6e89
push ecx
push edx
call fcn.00462fc9
add esp, 8
mov eax, dword [ebp - 0x64]
mov edi, dword [ebp - 0x5c]
inc dword [ebp - 0x48]
add edi, 0x64
mov dword [ebp - 0x5c], edi
mov ecx, dword [eax + 0x30]
mov esi, dword [eax + 0x2c]
sub ecx, esi
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x48], eax
jb 0x4a68e8
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x44], eax
mov esi, dword [ebp - 0x64]
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
mov eax, 0x66666667
mov ecx, dword [esi + 0x48]
mov edi, dword [esi + 0x44]
sub ecx, edi
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4a6e05
mov dword [ebp - 0x48], 0
nop
xor ecx, ecx
mov eax, 0x51eb851f
mov dword [ebp - 0x5c], ecx
mov ecx, dword [esi + 0x30]
mov esi, dword [esi + 0x2c]
mov dword [ebp - 0x54], ecx
sub ecx, esi
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4a6dd9
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x60], edx
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x68]
add ecx, edi
mov dword [ebp - 0x70], ecx
mov eax, dword [ecx + 0x1c]
cmp eax, dword [edx + esi + 0x24]
mov edx, dword [ebp - 0x60]
je 0x4a6ca6
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
jmp 0x4a6d6d
cmp byte [ecx + 0x24], 0
je 0x4a6d54
push edx
lea ecx, [ebp - 0x40]
call fcn.00428d00
cmp dword [ebp - 0x2c], 0x10
lea ecx, [ebp - 0x40]
mov edx, dword [ebp - 0x40]
lea edi, [ebp - 0x40]
mov eax, dword [ebp - 0x30]
lea esi, [ebp - 0x40]
cmovae ecx, edx
cmovae edi, edx
add eax, ecx
cmp dword [ebp - 0x2c], 0x10
mov dword [ebp - 0x54], eax
cmovae esi, edx
cmp esi, eax
je 0x4a6cf9
sub edi, esi
movsx eax, byte [esi]
push eax
call fcn.0046f988
mov byte [edi + esi], al
add esp, 4
inc esi
cmp esi, dword [ebp - 0x54]
jne 0x4a6ce4
push dword [ebp - 0x70]
mov esi, dword [ebp - 0x40]
lea eax, [ebp - 0x40]
push eax
call fcn.0042e750
mov cl, al
add esp, 8
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 0x4d], cl
cmp eax, 0x10
jb 0x4a6d46
lea ecx, [eax + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x4a6d39
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a6e89
push ecx
push esi
call fcn.00462fc9
mov cl, byte [ebp - 0x4d]
add esp, 8
mov edx, dword [ebp - 0x64]
mov eax, dword [edx + 0x30]
mov esi, dword [edx + 0x2c]
mov edi, dword [edx + 0x44]
jmp 0x4a6d63
push ecx
push edx
call fcn.0042e750
mov cl, al
add esp, 8
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x54], eax
test cl, cl
jne 0x4a6d9a
mov edx, dword [ebp - 0x60]
inc dword [ebp - 0x5c]
mov ecx, eax
add dword [ebp - 0x68], 0x64
add edx, 0x18
sub ecx, esi
mov dword [ebp - 0x60], edx
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x5c], eax
jb 0x4a6c84
jmp 0x4a6dd9
mov eax, dword [ebp - 0x74]
add edi, dword [ebp - 0x48]
push edi
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
je 0x4a6dd1
mov ecx, esi
call fcn.00428d00
mov eax, dword [edi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x1c], eax
mov eax, dword [edi + 0x20]
mov dword [esi + 0x20], eax
mov al, byte [edi + 0x24]
mov byte [esi + 0x24], al
mov esi, dword [ebp - 0x74]
add dword [esi + 4], 0x28
jmp 0x4a6dd9
push esi
mov ecx, eax
call fcn.0049bc70
mov esi, dword [ebp - 0x64]
mov eax, 0x66666667
inc dword [ebp - 0x4c]
add dword [ebp - 0x48], 0x28
mov ecx, dword [esi + 0x48]
mov edi, dword [esi + 0x44]
sub ecx, edi
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x4c], eax
jb 0x4a6c50
mov esi, dword [ebp - 0x44]
test esi, esi
je 0x4a6e5d
lea eax, [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x58]
push eax
push esi
call fcn.004311b0
mov ecx, dword [ebp - 0x6c]
mov eax, 0x2aaaaaab
sub ecx, esi
add esp, 0xc
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, esi
shl ecx, 3
cmp ecx, 0x1000
jb 0x4a6e53
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a6e89
push ecx
push esi
call fcn.00462fc9
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00462b2c
mov esp, ebp
pop ebp
ret 4
call fcn.0041b2c0
call fcn.0042e190
call fcn.0041b170
call fcn.0046d997
int3