Function at 0x476210
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 4], edx
mov esi, eax
xor eax, eax
push ebp
push 0x476470
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x3c]
push eax
call sub.kernel32.dll_GlobalLock
mov edi, eax
mov ebx, edi
lea eax, [ebp - 0x10]
push eax
mov edx, dword [esi + 4]
mov eax, dword [esi]
call fcn.00652c5c
call fcn.00627e44
push eax
mov edx, dword [esi + 4]
mov eax, dword [esi]
call fcn.00652c54
call fcn.00627e44
lea ecx, [ebp - 5]
pop edx
call fcn.00430ddc
mov eax, dword [ebx + 0x48]
and eax, 0xfffefff1
or eax, 1
mov dword [ebx + 0x48], eax
mov eax, dword [0x6691bc]
mov al, byte [eax + 0x30]
add al, 0xfd
sub al, 3
setb al
and eax, 0x7f
inc eax
mov word [ebx + 0x4c], ax
mov eax, dword [ebp - 0xc]
call fcn.00627e78
push eax
mov eax, dword [ebp - 0x10]
call fcn.00627e78
pop edx
call fcn.00627e24
mov esi, eax
mov word [ebx + 0x4e], si
sub si, 1
je 0x4762b8
sub si, 8
jne 0x4762d7
or dword [ebx + 0x48], 2
push edi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x278]
push eax
call sub.gdi32.dll_ResetDCW
jmp 0x476383
mov ax, word [ebp - 0x10]
mov word [ebx + 0x52], ax
mov ax, word [ebp - 0xc]
mov word [ebx + 0x50], ax
lea eax, [ebx + 0x66]
mov edx, 0x40
call fcn.00658544
lea ecx, [ebp - 4]
imul edx, dword [ebp - 0xc], 0x64
imul eax, dword [ebp - 0x10], 0x64
call fcn.00430b88
mov eax, dword [ebp - 4]
call fcn.00403ab8
mov ecx, eax
add ecx, ecx
lea edx, [ebx + 0x66]
mov eax, dword [ebp - 4]
call fcn.004023c8
or dword [ebx + 0x48], 0x10000
movzx eax, word [ebx + 0x46]
add eax, 0xdc
add eax, eax
call fcn.00652e1c
mov esi, eax
movzx ecx, word [ebx + 0x46]
add ecx, 0xdc
mov edx, esi
mov eax, edi
call fcn.004023c8
or dword [ebx + 0x48], 0xe
push 0xa
push edi
push esi
mov eax, dword [0x669970]
mov eax, dword [eax]
push eax
mov eax, dword [0x669764]
mov eax, dword [eax]
push eax
push 0
call sub.winspool.drv_DocumentPropertiesW
push esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x278]
push eax
call sub.gdi32.dll_ResetDCW
mov eax, esi
call fcn.00401fac
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x3c]
push eax
call sub.kernel32.dll_GlobalUnlock
push 0x6e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x278]
push eax
call sub.gdi32.dll_GetDeviceCaps
mov edx, dword [ebp + 8]
mov dword [edx - 0x4c], eax
push 0x6f
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x278]
push eax
call sub.gdi32.dll_GetDeviceCaps
mov edx, dword [ebp + 8]
mov dword [edx - 0x48], eax
mov eax, dword [0x669210]
mov eax, dword [eax]
push eax
push 0x64
push 0x5a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x278]
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
call sub.kernel32.dll_MulDiv
mov edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x50]
call fcn.0055c5a4
mov eax, dword [0x669210]
mov eax, dword [eax]
push eax
push 0x64
push 0x58
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x278]
push eax
call sub.gdi32.dll_GetDeviceCaps
push eax
call sub.kernel32.dll_MulDiv
mov ebx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x50]
mov dword [eax + 0x1d8], ebx
mov eax, dword [ebp + 8]
mov edx, ebx
mov eax, dword [0x669210]
mov eax, dword [eax]
call fcn.0061ec08
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x50]
mov dword [edx + 0x1e0], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x50]
call fcn.0055fb10
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x476477
lea eax, [ebp - 4]
call fcn.00403880
ret