Function at 0x402d90
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x53905b
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x58bd20]
xor eax, esp
mov dword [esp + 0x50], eax
push ebx
push esi
push edi
mov eax, dword [0x58bd20]
xor eax, esp
push eax
lea eax, [esp + 0x68]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x30], esi
mov byte [esi + 0x10], 0
call fcn.00401040
push eax
call fcn.004015e0
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x38]
je 0x4032c6
jmp 0x402e00
mov esi, dword [esp + 0x2c]
cmp byte [esi + 0x11], 0
jne 0x4032c6
xor edi, edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
xor ecx, ecx
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], edi
mov word [esp + 0x44], cx
mov byte [esp + 0x70], 2
mov eax, dword [0x594380]
cmp eax, edi
je 0x402e49
mov edx, dword [eax + 4]
lea ecx, [esp + 0x44]
call fcn.00410fa0
push 1
lea esi, [esp + 0x1c]
call fcn.00401cc0
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x402e62
mov dword [eax], str.__pluginfolder
mov ebx, dword [esp + 0x44]
add eax, 4
cmp dword [esp + 0x58], 8
mov dword [esp + 0x1c], eax
jae 0x402e78
lea ebx, [esp + 0x44]
mov edi, dword [esp + 0x18]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ebx
cmp edx, eax
jae 0x402ef8
mov ecx, edx
cmp edi, ecx
ja 0x402ef8
mov ecx, dword [esp + 0x20]
mov ebx, edx
sub ebx, edi
sar ebx, 2
cmp eax, ecx
jne 0x402eed
mov edx, eax
sub edx, edi
sar edx, 2
cmp edx, 0x3ffffffe
ja 0x403309
mov esi, ecx
sub esi, edi
inc edx
sar esi, 2
cmp edx, esi
jbe 0x402eed
mov eax, esi
shr eax, 1
mov ecx, 0x3fffffff
sub ecx, eax
cmp ecx, esi
jae 0x402ecf
xor esi, esi
jmp 0x402ed1
add esi, eax
cmp esi, edx
jae 0x402ed7
mov esi, edx
push esi
lea esi, [esp + 0x1c]
call fcn.00401cc0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x402f56
mov edx, dword [edi + ebx*4]
mov dword [eax], edx
jmp 0x402f56
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jne 0x402f50
mov edx, eax
sub edx, edi
sar edx, 2
cmp edx, 0x3ffffffe
ja 0x403309
mov esi, ecx
sub esi, edi
inc edx
sar esi, 2
cmp edx, esi
jbe 0x402f50
mov eax, esi
shr eax, 1
mov ecx, 0x3fffffff
sub ecx, eax
cmp ecx, esi
jae 0x402f32
xor esi, esi
jmp 0x402f34
add esi, eax
cmp esi, edx
jae 0x402f3a
mov esi, edx
push esi
lea esi, [esp + 0x1c]
call fcn.00401cc0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x402f56
mov dword [eax], ebx
add eax, 4
cmp dword [0x594388], 0
mov dword [esp + 0x1c], eax
je 0x403049
lea edx, [esp + 0x14]
mov dword [esp + 0x14], str.__debug
cmp edx, eax
jae 0x402fe4
cmp edi, edx
ja 0x402fe4
mov ebx, edx
sub ebx, edi
sar ebx, 2
cmp eax, ecx
jne 0x402fd9
mov edx, eax
sub edx, edi
sar edx, 2
cmp edx, 0x3ffffffe
ja 0x403309
mov esi, ecx
sub esi, edi
inc edx
sar esi, 2
cmp edx, esi
jbe 0x402fd9
mov eax, esi
shr eax, 1
mov ecx, 0x3fffffff
sub ecx, eax
cmp ecx, esi
jae 0x402fbb
xor esi, esi
jmp 0x402fbd
add esi, eax
cmp esi, edx
jae 0x402fc3
mov esi, edx
push esi
lea esi, [esp + 0x1c]
call fcn.00401cc0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x403042
mov edx, dword [edi + ebx*4]
mov dword [eax], edx
jmp 0x403042
cmp eax, ecx
jne 0x403038
mov edx, eax
sub edx, edi
sar edx, 2
cmp edx, 0x3ffffffe
ja 0x403309
mov esi, ecx
sub esi, edi
inc edx
sar esi, 2
cmp edx, esi
jbe 0x403038
mov eax, esi
shr eax, 1
mov ecx, 0x3fffffff
sub ecx, eax
cmp ecx, esi
jae 0x40301a
xor esi, esi
jmp 0x40301c
add esi, eax
cmp esi, edx
jae 0x403022
mov esi, edx
push esi
lea esi, [esp + 0x1c]
call fcn.00401cc0
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x403042
mov dword [eax], str.__debug
add eax, 4
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
cmp dword [edx + 0x14], 8
jb 0x403059
mov ebx, dword [edx]
jmp 0x40305b
mov ebx, edx
lea edx, [esp + 0x14]
mov dword [esp + 0x14], ebx
cmp edx, eax
jae 0x4030cb
cmp edi, edx
ja 0x4030cb
mov ebx, edx
sub ebx, edi
sar ebx, 2
cmp eax, ecx
jne 0x4030c0
mov edx, eax
sub edx, edi
sar edx, 2
cmp edx, 0x3ffffffe
ja 0x403309
sub ecx, edi
inc edx
sar ecx, 2
cmp edx, ecx
jbe 0x4030c0
mov eax, ecx
shr ecx, 1
mov esi, 0x3fffffff
sub esi, ecx
cmp esi, eax
jae 0x4030a6
xor eax, eax
jmp 0x4030a8
add eax, ecx
cmp eax, edx
jae 0x4030ae
mov eax, edx
push eax
lea esi, [esp + 0x1c]
call fcn.00401cc0
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x40311f
mov ecx, dword [edi + ebx*4]
mov dword [eax], ecx
jmp 0x40311f
cmp eax, ecx
jne 0x403119
mov edx, eax
sub edx, edi
sar edx, 2
cmp edx, 0x3ffffffe
ja 0x403309
sub ecx, edi
inc edx
sar ecx, 2
cmp edx, ecx
jbe 0x403119
mov eax, ecx
shr ecx, 1
mov esi, 0x3fffffff
sub esi, ecx
cmp esi, eax
jae 0x4030ff
xor eax, eax
jmp 0x403101
add eax, ecx
cmp eax, edx
jae 0x403107
mov eax, edx
push eax
lea esi, [esp + 0x1c]
call fcn.00401cc0
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test eax, eax
je 0x40311f
mov dword [eax], ebx
mov ebx, dword [esp + 0x2c]
mov ecx, dword [0x594380]
add eax, 4
mov dword [esp + 0x1c], eax
sub eax, edi
sar eax, 2
mov byte [ebx + 0x10], 1
lea edx, [ebx + 4]
test ecx, ecx
je 0x403169
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x14], 0xffffffff
test ecx, ecx
je 0x403169
lea esi, [esp + 0x14]
push esi
push edx
push edi
push eax
push str.uninstall
call ecx
cmp dword [esp + 0x14], 0
je 0x403240
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
mov dword [eax + 0x74], 3
mov eax, dword [ecx]
mov dword [eax + 0x70], 1
mov eax, dword [0x59434c]
test eax, eax
jne 0x4031f6
push 0x3c
call fcn.00413305
mov esi, eax
add esp, 4
mov dword [esp + 0x30], esi
xor ebx, ebx
cmp esi, ebx
je 0x4031e8
mov byte [esp + 0x70], 4
lea eax, [esp + 0x14]
mov dword [esi], vtable.canonsoft_uix::CAutoFinalizeObject.0
mov dword [esp + 0x14], esi
call fcn.00406b60
mov dword [esi], vtable.canonsoft_uix::CUnInstallUIContents.0
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x20], ebx
mov eax, esi
mov dword [esi + 0x28], ebx
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov byte [esp + 0x70], 2
mov byte [esi + 0x38], bl
mov dword [0x59434c], eax
jmp 0x4031f8
xor eax, eax
mov byte [esp + 0x70], 2
mov dword [0x59434c], eax
jmp 0x4031f8
xor ebx, ebx
sub esp, 0x1c
mov esi, esp
mov dword [eax + 4], 0x64
mov dword [esp + 0x4c], esp
xor edx, edx
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], ebx
push 0x14
mov eax, 0x566718
mov word [esi], dx
call fcn.00401a90
call fcn.00402760
mov eax, dword [eax + 0x20]
add esp, 0x1c
push ebx
push ebx
push 0x84b0
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
mov ebx, dword [esp + 0x2c]
cmp byte [ebx + 0x10], 1
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
jne 0x40325d
lea esp, [esp]
push 0x3e8
call esi
cmp byte [ebx + 0x10], 1
je 0x403250
push 0x3e8
call esi
add dword [esp + 0x28], 4
mov byte [esp + 0x70], 1
cmp dword [esp + 0x58], 8
jb 0x403282
mov ecx, dword [esp + 0x44]
push ecx
call fcn.00413334
add esp, 4
xor esi, esi
xor edx, edx
mov dword [esp + 0x58], 7
mov dword [esp + 0x54], esi
mov word [esp + 0x44], dx
mov byte [esp + 0x70], dl
cmp edi, esi
je 0x4032a8
push edi
call fcn.00413334
add esp, 4
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
cmp eax, dword [esp + 0x38]
jne 0x402e00
mov esi, dword [esp + 0x2c]
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
mov dword [esp + 0x70], 0xffffffff
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4032e9
push eax
call fcn.00413334
add esp, 4
mov ecx, dword [esp + 0x68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x50]
xor ecx, esp
call fcn.0051202b
mov esp, ebp
pop ebp
ret 4
push str.vector_T__too_long
call fcn.0052b420
int3