Function at 0x40ced0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x42b978
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, dword [0x4424ac]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4424ac]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x58]
xor edi, edi
mov dword [esp + 0x40], 0xf
mov dword [esp + 0x3c], edi
mov byte [esp + 0x2c], 0
push 0x104
push edi
push 0x443bf0
mov dword [esp + 0x5c], edi
call fcn.00418350
lea eax, [esp + 0x34]
push eax
call fcn.004045f0
add esp, 0x10
test al, al
jne 0x40cf5c
cmp dword [esp + 0x40], 0x10
jb 0x40cf52
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.0040eec8
add esp, 4
mov eax, 0x4e25
jmp 0x40d1b2
mov eax, dword [esp + 0x3c]
cmp eax, 0x104
jbe 0x40cf93
push eax
push str._s_GetModulePath_err_len:_d_n
call fcn.00404950
add esp, 8
cmp dword [esp + 0x40], 0x10
jb 0x40cf52
mov edx, dword [esp + 0x2c]
push edx
call fcn.0040eec8
add esp, 4
mov eax, 0x4e25
jmp 0x40d1b2
mov ebx, dword [esp + 0x40]
cmp ebx, 0x10
mov esi, dword [esp + 0x2c]
mov edx, esi
jae 0x40cfa6
lea edx, [esp + 0x2c]
cmp edx, edi
mov dword [esp + 0x14], edi
je 0x40cfc6
lea edi, [esp + 0x14]
mov ecx, 0x104
call fcn.00401c40
test eax, eax
jl 0x40cfcb
mov ecx, dword [esp + 0x14]
jmp 0x40cfcd
mov eax, 0x80070057
xor ecx, ecx
test eax, eax
jne 0x40d0e3
cmp ecx, 0x102
jae 0x40d0e3
cmp ebx, 0x10
mov eax, esi
jae 0x40cfec
lea eax, [esp + 0x2c]
add ecx, 1
cmp ecx, 0x7ffffffe
jbe 0x40d003
mov byte [0x443bf0], 0
jmp 0x40d0e3
push ecx
push 0
mov ecx, 0x104
mov edx, 0x443bf0
call fcn.00401c80
test eax, eax
jne 0x40d0e3
mov ecx, 0x104
mov eax, 0x443bf0
xor edi, edi
lea esp, [esp]
cmp byte [eax], 0
je 0x40d03f
add eax, 1
sub ecx, 1
jne 0x40d030
jmp 0x40d043
test ecx, ecx
jne 0x40d08f
mov edi, 0x80070057
xor edx, edx
test edi, edi
mov eax, edi
jl 0x40d06b
push 8
mov ecx, 0x104
sub ecx, edx
push 0
lea edx, [edx + 0x443bf0]
mov eax, str.Driver_
call fcn.00401c80
test eax, eax
jne 0x40d0e3
mov ecx, 0x104
mov eax, 0x443bf0
xor edi, edi
jmp 0x40d080
cmp byte [eax], 0
je 0x40d098
add eax, 1
sub ecx, 1
jne 0x40d080
jmp 0x40d0a0
mov edx, 0x104
sub edx, ecx
jmp 0x40d04a
test ecx, ecx
jne 0x40d131
mov edi, 0x80070057
xor edx, edx
test edi, edi
mov eax, edi
jl 0x40d0c8
push 0xb
mov ecx, 0x104
sub ecx, edx
push 0
lea edx, [edx + 0x443bf0]
mov eax, str.install.xml
call fcn.00401c80
test eax, eax
jne 0x40d0e3
push 0x443bf0
push str.GetDriverInfo
push str._s_get__s_ok_n
call fcn.00404950
add esp, 0xc
push ebp
push str.DriverVersion
push 0x443bf0
call fcn.0040c1d0
add esp, 0xc
test eax, eax
je 0x40d13d
xor eax, eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x5c]
mov dword [ebp + 0x20], 0x64
push eax
mov byte [0x4439d1], 1
call fcn.0040cb00
add esp, 4
cmp dword [esp + 0x40], 0x10
mov esi, eax
jb 0x40d1b0
mov ecx, dword [esp + 0x2c]
push ecx
jmp 0x40d1a8
mov edx, 0x104
sub edx, ecx
jmp 0x40d0a7
mov ebx, dword [sym.imp.SHLWAPI.dll_StrToIntA]
push ebp
xor esi, esi
call ebx
cmp byte [ebp], 0
mov dword [esp + 0x18], eax
je 0x40d175
lea edi, [esp + 0x18]
cmp byte [esi + ebp], 0x2e
jne 0x40d168
lea edx, [esi + ebp + 1]
push edx
add edi, 4
call ebx
mov dword [edi], eax
add esi, 1
cmp byte [esi + ebp], 0
jne 0x40d156
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x5c]
imul eax, eax, 0x64
add eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x20], eax
mov eax, dword [esp + 0x20]
push edx
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], ecx
call fcn.0040cb00
add esp, 4
cmp dword [esp + 0x40], 0x10
mov esi, eax
jb 0x40d1b0
mov eax, dword [esp + 0x2c]
push eax
call fcn.0040eec8
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.00417b3b
add esp, 0x40
ret