Function at 0x523cc8
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], ebx
test dl, dl
je 0x523cf7
add esp, 0xfffffff0
call fcn.004065b4
mov byte [ebp - 0xa], cl
mov byte [ebp - 9], dl
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x524699
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x52465f
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 8]
add eax, 4
call fcn.00407c30
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x34], edx
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x18], edx
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x1c], edx
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0x20], edx
call fcn.0048dcbc
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x30], ebx
push 0
lea eax, [ebp - 0x1c]
push eax
mov eax, ebx
mov ecx, 0x5246d0
mov edx, 0x5246ec
call fcn.00468d70
mov eax, dword [ebp - 0x1c]
mov edx, 0x524708
call fcn.00408eb8
sete byte [ebp - 0x11]
push 0
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov ecx, 0x524718
mov edx, 0x5246ec
call fcn.00468d70
mov eax, dword [ebp - 0x20]
mov edx, 0x524708
call fcn.00408eb8
sete byte [ebp - 0x12]
push 0
lea eax, [ebp - 0x24]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov ecx, 0x524730
mov edx, 0x5246ec
call fcn.00468d70
mov eax, dword [ebp - 0x24]
mov edx, 0x524708
call fcn.00408eb8
sete byte [ebp - 0x13]
mov eax, dword [ebp - 8]
call fcn.00524d14
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
jne 0x523df5
mov eax, dword [ebp - 8]
add eax, 4
mov edx, 0x524748
call fcn.00408010
lea ecx, [ebp - 0x28]
mov edx, 0x524770
mov eax, 0x5247bc
call fcn.0048f1c4
mov edx, dword [ebp - 0x28]
xor eax, eax
call fcn.004b6084
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], ebx
xor edx, edx
push ebp
push 0x52464e
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, ebx
mov edx, 0x80c80000
call fcn.004b8d80
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x433]
or edx, 8
call fcn.004b8dcc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
xor edx, edx
mov dword [eax + 0x5db], edx
mov edx, dword [ebp - 8]
mov dword [eax + 0x452], edx
mov dword [eax + 0x44e], 0x525464
mov edx, 0xffffff
call fcn.004ba3e8
call fcn.004c59d8
cmp al, 7
jb 0x523ea7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb040
mov edx, 0x5247e0
call fcn.004b2194
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb040
mov edx, 9
call fcn.004b209c
jmp 0x523ed1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb040
mov edx, 0x524800
call fcn.004b2194
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb040
mov edx, 8
call fcn.004b209c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov edx, 0x1e0
call fcn.004bb2bc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov edx, 0xc9
call fcn.004bb290
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb484
mov cl, 7
mov edx, 0x20
mov eax, 0x20
call fcn.004be828
mov edx, dword [ebp - 8]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x4eb]
push eax
call sub.gdi32.dll_CreateSolidBrush
mov ebx, eax
push ebx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0xc]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x10]
push eax
push 0
push 0
lea eax, [ebp - 0x38]
push eax
call fcn.004b17e4
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
call fcn.004bf438
call fcn.004b3344
push eax
call sub.user32.dll_FillRect
push ebx
call sub.gdi32.dll_DeleteObject
push 0x7f02
push 0
call sub.user32.dll_LoadIconW
push eax
push 0
push 0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
call fcn.004bf438
call fcn.004b3344
push eax
call sub.user32.dll_DrawIcon
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004b65a8
mov ebx, eax
mov ecx, 0x18
mov edx, 0x14
mov eax, ebx
call fcn.004c5b3c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
mov edx, dword [eax + 0x10]
mov eax, ebx
call fcn.004ba9ac
mov eax, dword [ebp - 8]
push eax
push 0x525424
mov eax, ebx
call fcn.004bade8
mov eax, ebx
call fcn.004b9944
lea ecx, [ebp - 4]
mov edx, 0x52481c
mov eax, 0x5248c0
call fcn.0048f1c4
movzx eax, byte [0x5248dc]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
mov edx, 0x5248ec
mov eax, dword [ebp - 4]
call fcn.00426be4
mov edx, dword [ebp - 0x3c]
lea eax, [ebp - 4]
call fcn.00408058
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp - 4]
call fcn.004b654c
mov ebx, eax
mov ecx, 0x18
mov edx, 0x3c
mov eax, ebx
call fcn.004c5b3c
mov ecx, 0x2d
mov edx, 0x17c
mov eax, ebx
call fcn.004ba9ac
mov eax, ebx
call fcn.004b9944
lea ecx, [ebp - 4]
mov edx, 0x524904
mov eax, 0x5249fc
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
xor edx, edx
call fcn.004b654c
mov esi, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0x24], esi
mov ebx, esi
mov eax, esi
mov ecx, 0x46
mov edx, 0x3c
call fcn.004c5b3c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
mov ecx, 0x2d
mov edx, 0x17c
call fcn.004ba9ac
mov eax, dword [ebp - 8]
push eax
push 0x5256f4
mov eax, ebx
call fcn.004bade8
mov eax, dword [ebp - 8]
push eax
push 0x52570c
mov eax, ebx
call fcn.004b8cf8
mov eax, dword [ebp - 8]
mov dword [ebx + 0x474], eax
mov dword [ebx + 0x470], 0x5257a0
mov eax, ebx
call fcn.004c6dcc
mov dl, 1
mov eax, dword [0x4e7548]
call fcn.004e9fcc
mov edx, dword [ebp - 8]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
call fcn.004ba098
mov edx, eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x28]
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 8]
mov dword [eax + 0x34], edx
mov dword [eax + 0x30], 0x525568
mov edx, dword [ebp - 8]
mov dword [eax + 0x3c], edx
mov dword [eax + 0x38], 0x5255f0
mov edx, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
xor ebx, ebx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov dl, 2
call fcn.004b65fc
mov edx, dword [ebp - 8]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x14]
mov ecx, 0x4e
mov edx, 0x3c
mov eax, esi
call fcn.004c5b3c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb274
push eax
mov eax, esi
call fcn.004ba000
pop edx
sub edx, eax
mov ecx, 0x64
mov eax, esi
call fcn.004ba9ac
mov eax, esi
call fcn.004b998c
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004b63cc
mov esi, eax
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004c5b3c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba098
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.004ba9ac
mov dl, 1
mov eax, esi
call fcn.004bb830
xor edx, edx
mov eax, esi
call fcn.004b78f0
mov eax, esi
call fcn.004b9944
add ebx, 0x17
cmp byte [ebp - 0xa], 0
je 0x52423e
lea ecx, [ebp - 4]
mov edx, 0x524a20
mov eax, 0x524a88
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 4]
call fcn.004b63cc
mov edx, dword [ebp - 8]
mov dword [edx + 0x20], eax
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x20]
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004c5b3c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba098
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.004ba9ac
mov dl, 1
mov eax, esi
call fcn.004bb830
mov eax, esi
call fcn.004b9944
add ebx, 0x17
mov eax, dword [ebp - 8]
cmp dword [eax + 0x34], 0
je 0x524310
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x524310
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x34]
mov edi, dword [ebp - 0x10]
mov edx, edi
mov eax, esi
call fcn.004448d4
mov edi, eax
movzx eax, byte [edi + 0x10]
xor al, 1
or al, byte [ebp - 0x12]
je 0x524304
mov edx, dword [edi + 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004b63cc
mov esi, eax
mov dword [edi + 8], esi
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004c5b3c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba098
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.004ba9ac
mov dl, 1
mov eax, esi
call fcn.004b78f0
cmp byte [edi + 0x10], 0
je 0x5242df
xor edx, edx
mov eax, esi
call fcn.004bb830
mov byte [esi + 0x409], 1
jmp 0x5242f1
movzx edx, byte [ebp - 0x13]
mov eax, esi
call fcn.004bb830
mov byte [esi + 0x409], 0
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x40a], eax
mov eax, esi
call fcn.004b9944
add ebx, 0x17
inc dword [ebp - 0x10]
dec dword [ebp - 0x18]
jne 0x524268
mov eax, dword [ebp - 8]
cmp byte [eax + 8], 0
je 0x5243b2
lea ecx, [ebp - 4]
mov edx, 0x524abc
mov eax, 0x524b30
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 4]
call fcn.004b63cc
mov edx, dword [ebp - 8]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x18]
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004c5b3c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba098
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.004ba9ac
push 0
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov ecx, 0x524b60
mov edx, 0x5246ec
call fcn.00468d70
mov eax, dword [ebp - 0x40]
mov edx, 0x524708
call fcn.00408eb8
sete dl
mov eax, esi
call fcn.004bb830
mov dl, 1
mov eax, esi
call fcn.004b78f0
mov eax, esi
call fcn.004b9944
add ebx, 0x17
mov eax, dword [ebp - 8]
cmp byte [eax + 9], 0
je 0x524454
lea ecx, [ebp - 4]
mov edx, 0x524b78
mov eax, 0x524be0
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 4]
call fcn.004b63cc
mov edx, dword [ebp - 8]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 8]
mov esi, dword [eax + 0x1c]
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004c5b3c
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba098
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.004ba9ac
push 0
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov ecx, 0x524c14
mov edx, 0x5246ec
call fcn.00468d70
mov eax, dword [ebp - 0x44]
mov edx, 0x524708
call fcn.00408eb8
sete dl
mov eax, esi
call fcn.004bb830
mov dl, 1
mov eax, esi
call fcn.004b78f0
mov eax, esi
call fcn.004b9944
add ebx, 0x17
lea edx, [ebx + 5]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba0f8
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov dl, 2
call fcn.004b65fc
mov edx, dword [ebp - 8]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 8]
mov ebx, dword [eax + 0x10]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb274
mov edx, eax
mov ecx, 0x2e
mov eax, ebx
call fcn.004ba9ac
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb258
push eax
mov eax, ebx
call fcn.004ba0dc
pop ecx
sub ecx, eax
xor edx, edx
mov eax, ebx
call fcn.004c5b3c
push 0xf
call sub.user32.dll_GetSysColor
mov edx, eax
mov eax, ebx
call fcn.004ba3e8
mov eax, ebx
call fcn.004b9944
lea ecx, [ebp - 4]
mov edx, 0x524c2c
mov eax, 0x524c5c
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
xor ecx, ecx
mov edx, dword [ebp - 4]
call fcn.004b64d4
mov ebx, eax
mov ecx, 0xf
mov edx, 0x14
mov eax, ebx
call fcn.004c5b3c
mov eax, ebx
call fcn.004bb040
movzx edx, byte [0x524c78]
call fcn.004b23a0
mov eax, ebx
call fcn.004bb040
mov edx, 0xff0000
call fcn.004b1ff4
mov dl, 1
mov eax, ebx
call fcn.004c564c
push 0x7f89
push 0
call sub.user32.dll_LoadCursorW
mov edx, eax
mov eax, ebx
call fcn.004b8e18
mov eax, dword [ebp - 8]
mov dword [ebx + 0x474], eax
mov dword [ebx + 0x470], 0x525498
mov eax, ebx
call fcn.004b9944
lea ecx, [ebp - 4]
mov edx, 0x524c88
mov eax, 0x524c88
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 4]
call fcn.004b62f8
mov esi, eax
mov ecx, 0x1a
mov edx, 0x5a
mov eax, esi
call fcn.004ba9ac
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004ba098
mov edx, eax
sub edx, 0x6a
mov ecx, 0xa
mov eax, esi
call fcn.004c5b3c
mov eax, dword [ebp - 8]
mov dword [esi + 0x474], eax
mov dword [esi + 0x470], 0x525488
mov eax, esi
call fcn.004b9944
lea ecx, [ebp - 4]
mov edx, 0x524c9c
mov eax, 0x524c9c
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 4]
call fcn.004b62f8
mov esi, eax
mov ecx, 0x1a
mov edx, 0x5a
mov eax, esi
call fcn.004ba9ac
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004ba098
mov edx, eax
sub edx, 0xce
mov ecx, 0xa
mov eax, esi
call fcn.004c5b3c
mov eax, dword [ebp - 8]
mov dword [esi + 0x474], eax
mov dword [esi + 0x470], 0x525478
mov eax, esi
call fcn.004b9944
cmp byte [ebp - 0x11], 0
je 0x524640
mov edx, ebx
mov eax, dword [ebp - 8]
call fcn.00525498
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x524655
ret