Function at 0x5252e6
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x68c188
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x20
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x10], ecx
call fcn.00511783
mov eax, dword [eax]
mov edx, dword [0x6c3634]
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x2a]
mov ecx, dword [edx + 0x9e6]
and esi, 0xffff
imul ecx, esi
mov esi, dword [edx + 0x9ee]
and eax, 0xffff
add ecx, eax
shl ecx, 4
add ecx, esi
call fcn.004a3d60
mov edi, eax
xor eax, eax
xor ebx, ebx
mov ax, word [edi + 0xe]
mov esi, dword [eax*4 + 0x6ccb20]
cmp esi, ebx
je 0x525374
mov al, 0xd
cmp byte [esi + 0x12c], al
je 0x52538b
xor ecx, ecx
mov cx, word [esi + 0x12a]
mov esi, dword [ecx*4 + 0x6ccb20]
cmp esi, ebx
jne 0x525358
xor eax, eax
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x2c
ret 8
mov ebp, dword [esp + 0x40]
cmp ebp, ebx
jge 0x5253c7
mov ecx, dword [0x6c3634]
call fcn.00560db7
test eax, eax
je 0x5253c7
mov ecx, dword [0x739a48]
lea eax, [esi + 0x1a]
push eax
mov eax, dword [edi + 0x19]
mov edx, dword [ecx]
push 0x329
mov eax, dword [eax + 0x449]
push eax
mov eax, dword [edi + 0x14]
push eax
call dword [edx + 0x20]
mov dword [edi + 0x14], eax
mov ecx, dword [esp + 0x10]
test byte [ecx + 0x76], 0x10
jne 0x5255b9
mov edx, dword [esp + 0x44]
push ebx
push edx
push ebp
mov ecx, esi
call fcn.004fedf9
cmp ebp, ebx
jge 0x52540e
mov ecx, dword [esi + 0x1e]
mov edx, dword [esi + 0x1a]
mov eax, dword [0x6c3634]
push 1
sar ecx, 0xc
push ecx
mov cx, word [esi + 0x28]
sar edx, 0xc
push edx
push ecx
push 1
lea ecx, [eax + 0x2e54]
call fcn.0050feb3
mov eax, dword [esi + 0x40]
xor ecx, ecx
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv dword [0x6d0f2b]
cmp eax, ebx
setl cl
dec ecx
and ecx, eax
cmp ecx, 0x64
jle 0x525437
mov ebp, 0x64
jmp 0x525443
xor edx, edx
cmp eax, ebx
setl dl
dec edx
and edx, eax
mov ebp, edx
mov ecx, 0x64
mov eax, 0xcccccccd
sub ecx, ebp
lea edi, [esi + 0x44]
mul ecx
mov ecx, edx
xor edx, edx
shr ecx, 2
mov eax, 0x51eb851f
mov dl, byte [ecx + 0x7ad948]
mov dword [edi + 0x14], ebx
shl edx, 0xc
imul edx
sar edx, 5
mov eax, edx
mov dword [edi + 0x18], ebx
shr eax, 0x1f
add edx, eax
xor ebx, ebx
mov eax, edx
shr edx, 0xc
and eax, 0xfff
shl edx, 0xc
add eax, edx
mov dword [edi + 8], eax
mov bl, byte [ecx + 0x7ad930]
mov ecx, ebx
mov eax, 0x51eb851f
shl ecx, 0xc
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, 0xfff
jbe 0x5254b8
mov edx, 0xfff
mov eax, edx
shr edx, 0xc
and eax, 0xfff
shl edx, 0xc
add eax, edx
mov dword [esp + 0x1c], eax
mov ecx, dword [0x6d0b70]
mov dword [esp + 0x38], 0
shl ecx, 0xc
mov dword [esp + 0x44], ecx
mov dword [esp + 0x10], 0x46000
lea ebx, [ebx + ebx*2]
mov eax, 0x66666667
imul ebx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 1
cmp edx, 1
jl 0x525507
mov eax, edx
shl eax, 0xc
mov dword [esp + 0x14], eax
lea ecx, [esp + 0x44]
lea edx, [esp + 0x20]
push ecx
push edx
lea ecx, [esp + 0x18]
mov byte [esp + 0x40], 3
call fcn.0048548e
lea ecx, [esp + 0x14]
lea edx, [esp + 0x24]
push ecx
push edx
mov ecx, eax
mov byte [esp + 0x40], 4
call fcn.00490558
mov dword [esp + 0x18], 0x1000
push eax
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x40], 6
call fcn.00490558
mov eax, dword [esp + 0x40]
cmp eax, 0x1000
jl 0x52556c
mov eax, 0xfff
mov dword [esp + 0x40], eax
shl ebp, 0xc
mov ecx, 0x64000
mov dword [esi + 0xdc], eax
sub ecx, ebp
mov eax, 0x51eb851f
mul ecx
shr edx, 5
cmp edx, 0xfff
jbe 0x525593
mov edx, 0xfff
mov dword [esp + 0x28], edx
mov dword [edi + 0x30], edx
mov dword [edi + 0x34], edx
mov al, byte [edi + 0xad]
mov ecx, edi
and al, 0xfe
mov byte [esp + 0x38], 0xb
xor al, 1
mov byte [edi + 0xad], al
call fcn.004ffb91
mov eax, dword [esi + 0x40]
jmp 0x525376