Function at 0x5a445c
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov byte [eax - 5], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
mov edx, dword [ebp + 8]
add eax, dword [edx - 0x10]
cmp eax, 0x64
jne 0x5a45e4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
dec eax
sub eax, 0x63
jae 0x5a45e4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x18]
mov edx, eax
add eax, eax
add eax, eax
add eax, eax
sub eax, edx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x14]
mov edx, dword [edx + 0xd0]
cmp word [edx + eax*8 + 0x22], 0
jne 0x5a45e4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x1c]
cmp dword [eax + 0xc], 2
jge 0x5a45e4
mov eax, dword [ebp + 8]
mov edx, dword [eax - 0x18]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
call fcn.005cdebc
test al, al
je 0x5a45e4
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x18]
mov eax, ebx
add ebx, ebx
add ebx, ebx
add ebx, ebx
sub ebx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
mov eax, dword [eax + 0xd0]
mov esi, dword [eax + ebx*8]
test esi, esi
je 0x5a4573
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
push esi
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
mov eax, dword [eax + 0xd0]
lea eax, [eax + ebx*8 + 0xc]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
mov edx, eax
shl eax, 8
sub eax, edx
mov ecx, 0x64
cdq
idiv ecx
push eax
mov eax, dword [ebp + 8]
fild dword [eax - 0x30]
fdiv dword [0x5a4a2c]
fsubr dword [0x5a4a30]
call fcn.00404798
mov edx, eax
shl eax, 8
sub eax, edx
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x1c]
mov eax, dword [ebp + 8]
lea edx, [eax - 0x2c]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00548520
jmp 0x5a4a22
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
mov eax, dword [eax + 0x198]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
mov eax, dword [eax + 0xd0]
lea eax, [eax + ebx*8 + 0xc]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
mov edx, eax
shl eax, 8
sub eax, edx
mov ecx, 0x64
cdq
idiv ecx
push eax
mov eax, dword [ebp + 8]
fild dword [eax - 0x30]
fdiv dword [0x5a4a2c]
fsubr dword [0x5a4a30]
call fcn.00404798
mov edx, eax
shl eax, 8
sub eax, edx
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x1c]
mov eax, dword [ebp + 8]
lea edx, [eax - 0x2c]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00548520
jmp 0x5a4a22
mov eax, dword [ebp + 8]
lea esi, [eax - 0x2c]
lea edi, [ebp - 0x24]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
jle 0x5a471c
mov eax, dword [ebp + 8]
cmp dword [eax - 0x18], 0xffffffff
jle 0x5a46fe
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
mov eax, dword [eax + 0xd0]
call fcn.004088c8
mov edx, dword [ebp + 8]
cmp eax, dword [edx - 0x18]
jle 0x5a46fe
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x18]
mov edx, eax
add eax, eax
add eax, eax
add eax, eax
sub eax, edx
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x14]
mov edx, dword [edx + 0xd0]
movzx edx, word [edx + eax*8 + 0x1e]
test dl, dl
je 0x5a4694
mov edx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x14]
mov edx, dword [edx + 0xd0]
lea edx, [edx + eax*8]
push edx
mov edx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x14]
mov edx, dword [edx + 0xd0]
movsx eax, word [edx + eax*8 + 0x22]
mov edx, dword [0x6a19c4]
movzx eax, byte [edx + eax]
push eax
mov ecx, dword [0x6a1d94]
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.005bd734
jmp 0x5a46f7
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x18]
mov eax, ebx
add ebx, ebx
add ebx, ebx
add ebx, ebx
sub ebx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
mov eax, dword [eax + 0xd0]
lea eax, [eax + ebx*8]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x14]
mov eax, dword [eax + 0xd0]
movsx eax, word [eax + ebx*8 + 0x22]
mov edx, dword [0x6a19c4]
movzx eax, byte [edx + eax]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00460284
mov edx, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x14]
mov edx, dword [edx + 0xd0]
mov ecx, dword [edx + ebx*8]
lea edx, [ebp - 0x24]
call fcn.005bd0cc
mov eax, dword [ebp + 8]
mov byte [eax - 5], 1
cmp dword [ebp - 0x1c], 0xffffffff
je 0x5a471c
push 0xff
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x34]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
lea edx, [ebp - 0x24]
call fcn.0059ffd0
mov eax, dword [ebp + 8]
cmp dword [eax - 0x10], 0
jle 0x5a48f0
mov eax, dword [ebp + 8]
cmp byte [eax - 5], 0
je 0x5a4881
mov eax, dword [ebp + 8]
add eax, 0xffffffd4
mov dl, 1
call fcn.005df3b4
push eax
mov eax, dword [ebp + 8]
add eax, 0xffffffd4
mov dl, 1
call fcn.005df3a0
pop edx
call fcn.005bcb7c
mov dword [ebp - 0xc], eax
xor ecx, ecx
push ebp
push 0x5a487a
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
test eax, eax
je 0x5a478e
mov edx, eax
sub edx, 0xa
cmp word [edx], 2
je 0x5a478e
mov eax, dword [ebp + 8]
mov edx, dword [eax - 4]
mov eax, dword [ebp + 8]
add eax, 0xfffffffc
call fcn.00406558
test eax, eax
je 0x5a4797
sub eax, 4
mov eax, dword [eax]
test eax, eax
jle 0x5a47d2
push 0
push 0
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x30]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.0040ae20
lea edx, [ebp - 0x44]
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x1c]
mov eax, dword [ebp - 0xc]
call fcn.005479b4
jmp 0x5a47eb
push 0xff
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x34]
mov eax, dword [ebp + 8]
lea edx, [eax - 0x2c]
mov eax, dword [ebp - 0xc]
call fcn.0059ffd0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0xc]
mov edx, eax
shl eax, 8
sub eax, edx
mov ecx, 0x64
cdq
idiv ecx
cmp eax, 0xff
jl 0x5a480c
mov eax, 0xff
test eax, eax
jle 0x5a4814
mov ebx, eax
jmp 0x5a4816
xor ebx, ebx
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x24]
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x30]
mov ecx, eax
xor edx, edx
xor eax, eax
call fcn.0040ae20
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x2c]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x28]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], edx
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x14]
push eax
mov ecx, ebx
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edx, dword [ebp - 0xc]
call fcn.005b97ec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5a48f0
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [ebp - 0xc], edx
call fcn.004050e8
ret
mov eax, dword [ebp + 8]
mov eax, dword [eax - 4]
test eax, eax
je 0x5a48a7
mov edx, eax
sub edx, 0xa
cmp word [edx], 2
je 0x5a48a7
mov eax, dword [ebp + 8]
mov edx, dword [eax - 4]
mov eax, dword [ebp + 8]
add eax, 0xfffffffc
call fcn.00406558
test eax, eax
je 0x5a48b0
sub eax, 4
mov eax, dword [eax]
test eax, eax
jle 0x5a48d0
push 0
push 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x1c]
mov eax, dword [ebp + 8]
lea edx, [eax - 0x2c]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.005479b4
jmp 0x5a48f0
push 0xff
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x34]
mov eax, dword [ebp + 8]
lea edx, [eax - 0x2c]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0059ffd0
jmp 0x5a4a22
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x10]
mov edx, dword [ebp + 8]
add eax, dword [edx - 0xc]
sub eax, 1
jb 0x5a4933
sub eax, 0x63
jae 0x5a4a22
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x34]
push eax
mov eax, dword [ebp + 8]
movzx ecx, byte [eax - 0x10]
mov eax, dword [ebp + 8]
add cl, byte [eax - 0xc]
mov eax, dword [ebp + 8]
lea edx, [eax - 0x2c]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0059fe50
jmp 0x5a4a22
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
call fcn.0059f358
mov edx, dword [ebp + 8]
mov dword [edx - 0x38], eax
mov eax, dword [ebp + 8]
cmp dword [eax - 0x38], 0
je 0x5a49f1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x30]
sub eax, 1
jb 0x5a4968
sub eax, 0x63
je 0x5a4988
jmp 0x5a49a8
push 0xff
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x34]
mov eax, dword [ebp + 8]
lea edx, [eax - 0x2c]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0059ffd0
jmp 0x5a4a22
mov eax, dword [ebp + 8]
movzx eax, byte [eax - 0x35]
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x34]
mov eax, dword [ebp + 8]
lea edx, [eax - 0x2c]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0059ffd0
jmp 0x5a4a22
mov eax, dword [ebp + 8]
movzx ecx, byte [eax - 0x35]
mov eax, dword [ebp + 8]
mov edx, 0x64
sub edx, dword [eax - 0x30]
mov eax, edx
shl eax, 8
sub eax, edx
mov ebx, 0x64
cdq
idiv ebx
cmp eax, ecx
jge 0x5a49cf
mov eax, ecx
mov edx, dword [ebp + 8]
mov cl, 0x64
sub cl, byte [edx - 0x30]
push ecx
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x34]
mov eax, dword [ebp + 8]
lea edx, [eax - 0x2c]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.005a0088
jmp 0x5a4a22
mov eax, dword [ebp + 8]
mov edx, 0x64
sub edx, dword [eax - 0x30]
mov eax, edx
shl eax, 8
sub eax, edx
mov ecx, 0x64
cdq
idiv ecx
push eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax - 0x34]
mov eax, dword [ebp + 8]
lea edx, [eax - 0x2c]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.0059ffd0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret