Function at 0x522da4
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 0x522dd3
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 0x523775
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x52373b
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, 0x5237ac
mov edx, 0x5237c8
call fcn.00468d70
mov eax, dword [ebp - 0x1c]
mov edx, 0x5237e4
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, 0x5237f4
mov edx, 0x5237c8
call fcn.00468d70
mov eax, dword [ebp - 0x20]
mov edx, 0x5237e4
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, 0x52380c
mov edx, 0x5237c8
call fcn.00468d70
mov eax, dword [ebp - 0x24]
mov edx, 0x5237e4
call fcn.00408eb8
sete byte [ebp - 0x13]
mov eax, dword [ebp - 8]
call fcn.00523df0
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
jne 0x522ed1
mov eax, dword [ebp - 8]
add eax, 4
mov edx, 0x523824
call fcn.00408010
lea ecx, [ebp - 0x28]
mov edx, 0x52384c
mov eax, 0x523898
call fcn.0048f1c4
mov edx, dword [ebp - 0x28]
xor eax, eax
call fcn.004b6078
mov ebx, eax
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], ebx
xor edx, edx
push ebp
push 0x52372a
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, ebx
mov edx, 0x80c80000
call fcn.004b8d74
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x433]
or edx, 8
call fcn.004b8dc0
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], 0x524540
mov edx, 0xffffff
call fcn.004ba3dc
call fcn.004c59cc
cmp al, 7
jb 0x522f83
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb034
mov edx, 0x5238bc
call fcn.004b2188
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb034
mov edx, 9
call fcn.004b2090
jmp 0x522fad
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb034
mov edx, 0x5238dc
call fcn.004b2188
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb034
mov edx, 8
call fcn.004b2090
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov edx, 0x1e0
call fcn.004bb2b0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov edx, 0xc9
call fcn.004bb284
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb478
mov cl, 7
mov edx, 0x20
mov eax, 0x20
call fcn.004be81c
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.004b17d8
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x2c]
call fcn.004bf42c
call fcn.004b3338
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.004bf42c
call fcn.004b3338
push eax
call sub.user32.dll_DrawIcon
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004b659c
mov ebx, eax
mov ecx, 0x18
mov edx, 0x14
mov eax, ebx
call fcn.004c5b30
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.004ba9a0
mov eax, dword [ebp - 8]
push eax
push 0x524500
mov eax, ebx
call fcn.004baddc
mov eax, ebx
call fcn.004b9938
lea ecx, [ebp - 4]
mov edx, 0x5238f8
mov eax, 0x52399c
call fcn.0048f1c4
movzx eax, byte [0x5239b8]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 4]
mov edx, 0x5239c8
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.004b6540
mov ebx, eax
mov ecx, 0x18
mov edx, 0x3c
mov eax, ebx
call fcn.004c5b30
mov ecx, 0x2d
mov edx, 0x17c
mov eax, ebx
call fcn.004ba9a0
mov eax, ebx
call fcn.004b9938
lea ecx, [ebp - 4]
mov edx, 0x5239e0
mov eax, 0x523ad8
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
xor edx, edx
call fcn.004b6540
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.004c5b30
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
mov ecx, 0x2d
mov edx, 0x17c
call fcn.004ba9a0
mov eax, dword [ebp - 8]
push eax
push 0x5247d0
mov eax, ebx
call fcn.004baddc
mov eax, dword [ebp - 8]
push eax
push 0x5247e8
mov eax, ebx
call fcn.004b8cec
mov eax, dword [ebp - 8]
mov dword [ebx + 0x474], eax
mov dword [ebx + 0x470], 0x52487c
mov eax, ebx
call fcn.004c6dc0
mov dl, 1
mov eax, dword [0x4e6a6c]
call fcn.004e94f0
mov edx, dword [ebp - 8]
mov dword [edx + 0x28], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x24]
call fcn.004ba08c
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], 0x524644
mov edx, dword [ebp - 8]
mov dword [eax + 0x3c], edx
mov dword [eax + 0x38], 0x5246cc
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.004b65f0
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.004c5b30
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb268
push eax
mov eax, esi
call fcn.004b9ff4
pop edx
sub edx, eax
mov ecx, 0x64
mov eax, esi
call fcn.004ba9a0
mov eax, esi
call fcn.004b9980
mov eax, dword [ebp - 8]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004b63c0
mov esi, eax
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004c5b30
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba08c
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.004ba9a0
mov dl, 1
mov eax, esi
call fcn.004bb824
xor edx, edx
mov eax, esi
call fcn.004b78e4
mov eax, esi
call fcn.004b9938
add ebx, 0x17
cmp byte [ebp - 0xa], 0
je 0x52331a
lea ecx, [ebp - 4]
mov edx, 0x523afc
mov eax, 0x523b64
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 4]
call fcn.004b63c0
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.004c5b30
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba08c
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.004ba9a0
mov dl, 1
mov eax, esi
call fcn.004bb824
mov eax, esi
call fcn.004b9938
add ebx, 0x17
mov eax, dword [ebp - 8]
cmp dword [eax + 0x34], 0
je 0x5233ec
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 8]
dec eax
test eax, eax
jl 0x5233ec
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 0x5233e0
mov edx, dword [edi + 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004b63c0
mov esi, eax
mov dword [edi + 8], esi
mov ecx, ebx
xor edx, edx
mov eax, esi
call fcn.004c5b30
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba08c
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.004ba9a0
mov dl, 1
mov eax, esi
call fcn.004b78e4
cmp byte [edi + 0x10], 0
je 0x5233bb
xor edx, edx
mov eax, esi
call fcn.004bb824
mov byte [esi + 0x409], 1
jmp 0x5233cd
movzx edx, byte [ebp - 0x13]
mov eax, esi
call fcn.004bb824
mov byte [esi + 0x409], 0
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x40a], eax
mov eax, esi
call fcn.004b9938
add ebx, 0x17
inc dword [ebp - 0x10]
dec dword [ebp - 0x18]
jne 0x523344
mov eax, dword [ebp - 8]
cmp byte [eax + 8], 0
je 0x52348e
lea ecx, [ebp - 4]
mov edx, 0x523b98
mov eax, 0x523c0c
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 4]
call fcn.004b63c0
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.004c5b30
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba08c
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.004ba9a0
push 0
lea eax, [ebp - 0x40]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov ecx, 0x523c3c
mov edx, 0x5237c8
call fcn.00468d70
mov eax, dword [ebp - 0x40]
mov edx, 0x5237e4
call fcn.00408eb8
sete dl
mov eax, esi
call fcn.004bb824
mov dl, 1
mov eax, esi
call fcn.004b78e4
mov eax, esi
call fcn.004b9938
add ebx, 0x17
mov eax, dword [ebp - 8]
cmp byte [eax + 9], 0
je 0x523530
lea ecx, [ebp - 4]
mov edx, 0x523c54
mov eax, 0x523cbc
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp - 4]
call fcn.004b63c0
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.004c5b30
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba08c
mov edx, eax
mov ecx, 0x11
mov eax, esi
call fcn.004ba9a0
push 0
lea eax, [ebp - 0x44]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x30]
mov ecx, 0x523cf0
mov edx, 0x5237c8
call fcn.00468d70
mov eax, dword [ebp - 0x44]
mov edx, 0x5237e4
call fcn.00408eb8
sete dl
mov eax, esi
call fcn.004bb824
mov dl, 1
mov eax, esi
call fcn.004b78e4
mov eax, esi
call fcn.004b9938
add ebx, 0x17
lea edx, [ebx + 5]
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
call fcn.004ba0ec
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov dl, 2
call fcn.004b65f0
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.004bb268
mov edx, eax
mov ecx, 0x2e
mov eax, ebx
call fcn.004ba9a0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004bb24c
push eax
mov eax, ebx
call fcn.004ba0d0
pop ecx
sub ecx, eax
xor edx, edx
mov eax, ebx
call fcn.004c5b30
push 0xf
call sub.user32.dll_GetSysColor
mov edx, eax
mov eax, ebx
call fcn.004ba3dc
mov eax, ebx
call fcn.004b9938
lea ecx, [ebp - 4]
mov edx, 0x523d08
mov eax, 0x523d38
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
xor ecx, ecx
mov edx, dword [ebp - 4]
call fcn.004b64c8
mov ebx, eax
mov ecx, 0xf
mov edx, 0x14
mov eax, ebx
call fcn.004c5b30
mov eax, ebx
call fcn.004bb034
movzx edx, byte [0x523d54]
call fcn.004b2394
mov eax, ebx
call fcn.004bb034
mov edx, 0xff0000
call fcn.004b1fe8
mov dl, 1
mov eax, ebx
call fcn.004c5640
push 0x7f89
push 0
call sub.user32.dll_LoadCursorW
mov edx, eax
mov eax, ebx
call fcn.004b8e0c
mov eax, dword [ebp - 8]
mov dword [ebx + 0x474], eax
mov dword [ebx + 0x470], 0x524574
mov eax, ebx
call fcn.004b9938
lea ecx, [ebp - 4]
mov edx, 0x523d64
mov eax, 0x523d64
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 4]
call fcn.004b62ec
mov esi, eax
mov ecx, 0x1a
mov edx, 0x5a
mov eax, esi
call fcn.004ba9a0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004ba08c
mov edx, eax
sub edx, 0x6a
mov ecx, 0xa
mov eax, esi
call fcn.004c5b30
mov eax, dword [ebp - 8]
mov dword [esi + 0x474], eax
mov dword [esi + 0x470], 0x524564
mov eax, esi
call fcn.004b9938
lea ecx, [ebp - 4]
mov edx, 0x523d78
mov eax, 0x523d78
call fcn.0048f1c4
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
mov edx, dword [ebp - 4]
call fcn.004b62ec
mov esi, eax
mov ecx, 0x1a
mov edx, 0x5a
mov eax, esi
call fcn.004ba9a0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
call fcn.004ba08c
mov edx, eax
sub edx, 0xce
mov ecx, 0xa
mov eax, esi
call fcn.004c5b30
mov eax, dword [ebp - 8]
mov dword [esi + 0x474], eax
mov dword [esi + 0x470], 0x524554
mov eax, esi
call fcn.004b9938
cmp byte [ebp - 0x11], 0
je 0x52371c
mov edx, ebx
mov eax, dword [ebp - 8]
call fcn.00524574
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x523731
ret