Function at 0x420750
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47ee40
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push esi
push edi
mov eax, dword [0x4ac084]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x10], ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0041dc30
mov eax, dword [0x4b048c]
mov edx, 0x413
mov ecx, dword [ebx + 0x30]
lea eax, [eax + eax*8]
cmp dx, word [eax*4 + 0x4ac960]
jne 0x4207a8
mov ecx, dword [ebx + 0x2cc]
push ecx
push 0x76
push 0x416
mov ecx, ebx
call fcn.0041ef20
call fcn.00403450
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4207d3
push 0x80004005
call fcn.004039a0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0
lea edx, [ebp - 0x14]
mov eax, dword [ebx + 0x1d4]
mov ecx, dword [ebx + eax*4 + 0x1c8]
call fcn.00428520
mov eax, dword [ebx + 0x1d4]
lea ecx, [ebx + 0x1a4]
push 1
push dword [ebp - 0x14]
push dword [ebx + eax*4 + 0x1c8]
call fcn.00426e30
lea eax, [ebx + 0x1ec]
mov dword [ebx + 0x2b0], 1
push eax
push 0x41ebe0
push dword [ebx + 4]
push 0x87
push dword [0x4b0494]
call dword [sym.imp.USER32.dll_CreateDialogParamW]
push 0
mov ecx, ebx
call fcn.00421030
push 0x40a
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push 0x445600
mov esi, eax
lea edi, [ebx + 0xe4]
push 0xfffffffffffffffc
push esi
mov dword [edi], esi
call dword [sym.imp.USER32.dll_SetWindowLongW]
push edi
push str._This
push esi
mov dword [0x4b04ec], eax
call dword [sym.imp.USER32.dll_SetPropW]
mov ebx, dword [sym.imp.USER32.dll_SetWindowPos]
push 6
push dword [edi + 0xc]
push dword [edi + 8]
push 0
push 0
push 0
push dword [edi]
call ebx
mov edi, dword [ebp - 0x10]
push 0x40b
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push 0x445600
mov esi, eax
add edi, 0x124
push 0xfffffffffffffffc
push esi
mov dword [edi], esi
call dword [sym.imp.USER32.dll_SetWindowLongW]
push edi
push str._This
push esi
mov dword [0x4b04ec], eax
call dword [sym.imp.USER32.dll_SetPropW]
push 6
push dword [edi + 0xc]
push dword [edi + 8]
push 0
push 0
push 0
push dword [edi]
call ebx
mov edi, dword [ebp - 0x10]
push 0x40c
push dword [edi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov esi, eax
push 0x445600
add edi, 0x164
push 0xfffffffffffffffc
push esi
mov dword [edi], esi
call dword [sym.imp.USER32.dll_SetWindowLongW]
push edi
push str._This
push esi
mov dword [0x4b04ec], eax
call dword [sym.imp.USER32.dll_SetPropW]
push 6
push dword [edi + 0xc]
push dword [edi + 8]
push 0
push 0
push 0
push dword [edi]
call ebx
mov esi, dword [ebp - 0x10]
push 0
push 0x2710
push 0x64
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetTimer]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x424
push dword [esi + 4]
call edi
push 0
push dword [esi + 0x40]
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
call fcn.00403450
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x42098c
push 0x80004005
call fcn.004039a0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 0xc], eax
push 0x11
push str.STRING_NOT_FOUND_
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 1
call fcn.004039c0
mov eax, dword [0x4b048c]
lea eax, [eax + eax*8]
movzx eax, word [eax*4 + 0x4ac960]
push eax
push 0x9c
push ecx
lea ecx, [ebp + 0xc]
call fcn.00415350
test eax, eax
jne 0x4209e5
movzx eax, word [0x4ac960]
push eax
push 0x9c
push ecx
lea ecx, [ebp + 0xc]
call fcn.00415350
mov ebx, dword [ebp + 0xc]
push ebx
push 0x424
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 0x444
push dword [esi + 4]
call edi
push 0
push dword [esi + 0x48]
push 0x30
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
call fcn.00403450
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x420a32
push 0x80004005
call fcn.004039a0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 2
call fcn.00403450
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x420a5f
push 0x80004005
call fcn.004039a0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push 0x11
push str.STRING_NOT_FOUND_
lea ecx, [ebp + 8]
mov byte [ebp - 4], 3
call fcn.004039c0
mov eax, dword [0x4b048c]
lea eax, [eax + eax*8]
movzx eax, word [eax*4 + 0x4ac960]
push eax
push 0xcc
push ecx
lea ecx, [ebp + 8]
call fcn.00415350
test eax, eax
jne 0x420ab8
movzx eax, word [0x4ac960]
push eax
push 0xcc
push ecx
lea ecx, [ebp + 8]
call fcn.00415350
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x18]
sub esp, 8
xorps xmm0, xmm0
movsd qword [esp], xmm0
push esi
push eax
call fcn.004040a0
mov eax, dword [ebp - 0x10]
add esp, 0x10
mov edi, dword [ebp - 0x18]
push edi
push 0x444
push dword [eax + 4]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
cmp byte [0x4b05cc], 0
je 0x420af6
call fcn.0043d620
lea edx, [esi - 0x10]
mov dword [0x4ac914], 0
or esi, 0xffffffff
mov byte [ebp - 4], 2
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x420b1e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
add edi, 0xfffffff0
mov eax, esi
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x420b39
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
add ebx, 0xfffffff0
mov eax, esi
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x420b54
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x420b73
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8