Function at 0x40c5b9
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push 0x401686
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x124
push ebx
push esi
push edi
mov dword [ebp - 8], esp
mov dword [ebp - 4], 0x401468
xor edi, edi
lea eax, [ebp - 0x44]
push edi
push 0xc
push 1
push edi
push eax
push 0x10
push 0x880
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x84], edi
mov dword [ebp - 0x94], edi
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0xb4], edi
mov dword [ebp - 0xc4], edi
mov dword [ebp - 0xd4], edi
mov dword [ebp - 0xe4], edi
mov dword [ebp - 0xf4], edi
mov dword [ebp - 0x104], edi
mov dword [ebp - 0x114], edi
mov dword [ebp - 0x118], edi
call sub.MSVBVM60.DLL___vbaRedim
add esp, 0x1c
mov dword [ebp - 0x4c], 0xbe
lea ebx, [ebp - 0x54]
push 2
pop esi
push edi
mov dword [ebp - 0x54], esi
push dword [ebp - 0x44]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 1
mov dword [ebp - 0x5c], edi
push dword [ebp - 0x44]
mov dword [ebp - 0x64], esi
lea ebx, [ebp - 0x64]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push esi
mov dword [ebp - 0x6c], edi
push dword [ebp - 0x44]
mov dword [ebp - 0x74], esi
lea ebx, [ebp - 0x74]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 3
mov dword [ebp - 0x7c], edi
push dword [ebp - 0x44]
mov dword [ebp - 0x84], esi
lea ebx, [ebp - 0x84]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 4
mov dword [ebp - 0x8c], edi
push dword [ebp - 0x44]
mov dword [ebp - 0x94], esi
lea ebx, [ebp - 0x94]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 5
mov dword [ebp - 0x9c], 0x8b
push dword [ebp - 0x44]
mov dword [ebp - 0xa4], esi
lea ebx, [ebp - 0xa4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 6
mov dword [ebp - 0xac], 0x4c
push dword [ebp - 0x44]
mov dword [ebp - 0xb4], esi
lea ebx, [ebp - 0xb4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 7
mov dword [ebp - 0xbc], 0x24
push dword [ebp - 0x44]
mov dword [ebp - 0xc4], esi
lea ebx, [ebp - 0xc4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 8
mov dword [ebp - 0xcc], 4
push dword [ebp - 0x44]
mov dword [ebp - 0xd4], esi
lea ebx, [ebp - 0xd4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 9
mov dword [ebp - 0xdc], 0x51
push dword [ebp - 0x44]
mov dword [ebp - 0xe4], esi
lea ebx, [ebp - 0xe4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 0xa
mov dword [ebp - 0xec], 0xff
push dword [ebp - 0x44]
mov dword [ebp - 0xf4], esi
lea ebx, [ebp - 0xf4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 0xb
mov dword [ebp - 0xfc], 0xd6
push dword [ebp - 0x44]
mov dword [ebp - 0x104], esi
lea ebx, [ebp - 0x104]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 0xc
mov dword [ebp - 0x10c], 0xc3
push dword [ebp - 0x44]
mov dword [ebp - 0x114], esi
lea ebx, [ebp - 0x114]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x30]
push eax
call sub.MSVBVM60.DLL_rtcArray
lea eax, [ebp - 0x44]
push eax
push edi
call sub.MSVBVM60.DLL___vbaErase
lea eax, [ebp - 0x30]
push eax
push 0x200c
call sub.MSVBVM60.DLL___vbaAryVar
mov dword [ebp - 0x118], eax
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x20]
push eax
call sub.MSVBVM60.DLL___vbaAryCopy
lea ecx, [ebp - 0x30]
call sub.MSVBVM60.DLL___vbaFreeVar
xor ebx, ebx
push 0xc
pop eax
cmp ebx, eax
jg 0x40c8c1
cmp ebx, 0xd
jb 0x40c89a
call sub.MSVBVM60.DLL___vbaGenerateBoundsError
push ebx
push dword [ebp - 0x20]
call sub.MSVBVM60.DLL___vbaDerefAry1
push eax
call sub.MSVBVM60.DLL___vbaUI1ErrVar
mov ecx, dword [0x413108]
push 1
mov byte [ecx + ebx], al
pop eax
add eax, ebx
jo 0x40cbee
mov ebx, eax
jmp 0x40c889
push edi
push 0xb
push 1
lea eax, [ebp - 0x44]
push edi
push eax
push 0x10
push 0x880
call sub.MSVBVM60.DLL___vbaRedim
add esp, 0x1c
mov dword [ebp - 0x4c], 0x4c
mov dword [ebp - 0x54], esi
lea ebx, [ebp - 0x54]
push edi
push dword [ebp - 0x44]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 1
mov dword [ebp - 0x5c], 0x6f
push dword [ebp - 0x44]
mov dword [ebp - 0x64], esi
lea ebx, [ebp - 0x64]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push esi
mov dword [ebp - 0x6c], 0x61
push dword [ebp - 0x44]
mov dword [ebp - 0x74], esi
lea ebx, [ebp - 0x74]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 3
mov dword [ebp - 0x7c], 0x64
push dword [ebp - 0x44]
mov dword [ebp - 0x84], esi
lea ebx, [ebp - 0x84]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 4
mov dword [ebp - 0x8c], 0x4c
push dword [ebp - 0x44]
mov dword [ebp - 0x94], esi
lea ebx, [ebp - 0x94]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 5
mov dword [ebp - 0x9c], 0x69
push dword [ebp - 0x44]
mov dword [ebp - 0xa4], esi
lea ebx, [ebp - 0xa4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 6
mov dword [ebp - 0xac], 0x62
push dword [ebp - 0x44]
mov dword [ebp - 0xb4], esi
lea ebx, [ebp - 0xb4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 7
mov dword [ebp - 0xbc], 0x72
push dword [ebp - 0x44]
mov dword [ebp - 0xc4], esi
lea ebx, [ebp - 0xc4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 8
mov dword [ebp - 0xcc], 0x61
push dword [ebp - 0x44]
mov dword [ebp - 0xd4], esi
lea ebx, [ebp - 0xd4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 9
mov dword [ebp - 0xdc], 0x72
push dword [ebp - 0x44]
mov dword [ebp - 0xe4], esi
lea ebx, [ebp - 0xe4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 0xa
mov dword [ebp - 0xec], 0x79
push dword [ebp - 0x44]
mov dword [ebp - 0xf4], esi
lea ebx, [ebp - 0xf4]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
push 0xb
mov dword [ebp - 0xfc], 0x57
push dword [ebp - 0x44]
mov dword [ebp - 0x104], esi
lea ebx, [ebp - 0x104]
call sub.MSVBVM60.DLL___vbaDerefAry1
mov ecx, eax
mov edx, ebx
call sub.MSVBVM60.DLL___vbaVarMove
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x30]
push eax
call sub.MSVBVM60.DLL_rtcArray
lea eax, [ebp - 0x44]
push eax
push edi
call sub.MSVBVM60.DLL___vbaErase
lea eax, [ebp - 0x30]
push eax
push 0x200c
call sub.MSVBVM60.DLL___vbaAryVar
mov dword [ebp - 0x118], eax
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x20]
push eax
call sub.MSVBVM60.DLL___vbaAryCopy
lea ecx, [ebp - 0x30]
call sub.MSVBVM60.DLL___vbaFreeVar
push 1
pop ebx
push 0xb
pop eax
cmp edi, eax
jg 0x40cb59
mov eax, dword [ebp - 0x1c]
push edi
push dword [ebp - 0x20]
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x54], 8
call sub.MSVBVM60.DLL___vbaDerefAry1
push eax
call sub.MSVBVM60.DLL___vbaI4Var
push eax
lea eax, [ebp - 0x30]
push eax
call sub.MSVBVM60.DLL_rtcVarBstrFromAnsi
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.MSVBVM60.DLL___vbaVarCat
push eax
call sub.MSVBVM60.DLL___vbaStrVarMove
mov edx, eax
lea ecx, [ebp - 0x1c]
call sub.MSVBVM60.DLL___vbaStrMove
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x30]
push eax
push esi
call sub.MSVBVM60.DLL___vbaFreeVarList
mov eax, ebx
add esp, 0xc
add eax, edi
jo 0x40cbee
mov edi, eax
jmp 0x40caec
call 0x40cbf3
push dword [ebp - 0x1c]
mov dword [0x41311c], eax
push eax
call fcn.0040bf82
mov dword [0x413114], eax
mov eax, dword [0x413108]
inc eax
push eax
call sub.MSVBVM60.DLL_VarPtr
push 0x413114
mov dword [ebp - 0x118], eax
call sub.MSVBVM60.DLL_VarPtr
push 4
push eax
push dword [ebp - 0x118]
call fcn.0040cf59
or word [0x413118], 0xffff
push 0x40cbdc
jmp 0x40cbc8
lea ecx, [ebp - 0x1c]
call sub.MSVBVM60.DLL___vbaFreeStr
lea eax, [ebp - 0x20]
push eax
push 0
call sub.MSVBVM60.DLL___vbaAryDestruct
ret
call sub.MSVBVM60.DLL___vbaErrorOverflow
push ebp
mov ebp, esp
push ecx
push ecx
push 0x401686
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb8
push ebx
push esi
push edi
mov dword [ebp - 8], esp
mov dword [ebp - 4], 0x401478
push 0x11
lea eax, [ebp - 0x40]
xor esi, esi
push 0x404ea4
push eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x94], esi
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xb8], esi
call sub.MSVBVM60.DLL___vbaAryConstruct2
mov cx, 0x64
call sub.MSVBVM60.DLL___vbaUI1I2
mov ecx, dword [ebp - 0x34]
mov byte [ecx], al
mov cx, 0xa1
call sub.MSVBVM60.DLL___vbaUI1I2
mov ecx, dword [ebp - 0x34]
mov byte [ecx + 1], al
mov cx, 0x18
call sub.MSVBVM60.DLL___vbaUI1I2
mov ecx, dword [ebp - 0x34]
mov byte [ecx + 2], al
xor cx, cx
call sub.MSVBVM60.DLL___vbaUI1I2
mov ecx, dword [ebp - 0x34]
mov byte [ecx + 3], al
xor cx, cx
call sub.MSVBVM60.DLL___vbaUI1I2
mov ecx, dword [ebp - 0x34]
mov byte [ecx + 4], al
xor cx, cx
call sub.MSVBVM60.DLL___vbaUI1I2
mov ecx, dword [ebp - 0x34]
mov byte [ecx + 5], al
mov cx, 0xc3
call sub.MSVBVM60.DLL___vbaUI1I2
mov ecx, dword [ebp - 0x34]
mov byte [ecx + 6], al
push dword [ebp - 0x34]
call sub.MSVBVM60.DLL_VarPtr
push esi
push esi
push esi
push esi
push eax
call fcn.004044f8
mov dword [ebp - 0xb8], eax
call sub.MSVBVM60.DLL___vbaSetSystemError
mov edi, dword [ebp - 0xb8]
lea eax, [ebp - 0x24]
push eax
call sub.MSVBVM60.DLL_VarPtr
push 4
add edi, 0x30
pop ebx
mov dword [ebp - 0xb8], eax
push ebx
jo 0x40cf54
push edi
push eax
call fcn.0040cf59
lea eax, [ebp - 0x50]
push eax
call sub.MSVBVM60.DLL_VarPtr
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x24]
push ebx
add ecx, 0xc
jo 0x40cf54
push ecx
push eax
call fcn.0040cf59
lea eax, [ebp - 0x4c]
push eax
call sub.MSVBVM60.DLL_VarPtr
mov edi, eax
mov eax, dword [ebp - 0x50]
add eax, 0xc
jo 0x40cf54
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xb8]
push eax
call sub.MSVBVM60.DLL_VarPtr
push ebx
push eax
push edi
call fcn.0040cf59
xor edx, edx
lea ecx, [ebp - 0x28]
call sub.MSVBVM60.DLL___vbaStrCopy
lea eax, [ebp - 0x4c]
xor edi, edi
push eax
call sub.MSVBVM60.DLL_VarPtr
mov ecx, dword [ebp - 0x4c]
push ebx
add ecx, ebx
mov dword [ebp - 0xb8], eax
jo 0x40cf54
push ecx
push eax
call fcn.0040cf59
lea eax, [ebp - 0x20]
push eax
call sub.MSVBVM60.DLL_VarPtr
mov ecx, dword [ebp - 0x4c]
push ebx
add ecx, 0x28
mov dword [ebp - 0xb8], eax
jo 0x40cf54
push ecx
push eax
call fcn.0040cf59
lea eax, [ebp - 0x18]
push eax
call sub.MSVBVM60.DLL_VarPtr
push 1
mov dword [ebp - 0xb8], eax
push dword [ebp - 0x20]
push eax
call fcn.0040cf59
cmp dword [ebp - 0x18], esi
je 0x40cd6b
cmp dword [ebp - 0x18], esi
je 0x40ce44
push dword [ebp - 0x28]
push dword [ebp - 0x18]
call sub.MSVBVM60.DLL_rtcBstrFromAnsi
mov edx, eax
lea ecx, [ebp - 0x54]
call sub.MSVBVM60.DLL___vbaStrMove
push eax
call sub.MSVBVM60.DLL___vbaStrCat
mov edx, eax
lea ecx, [ebp - 0x28]
call sub.MSVBVM60.DLL___vbaStrMove
lea ecx, [ebp - 0x54]
call sub.MSVBVM60.DLL___vbaFreeStr
lea eax, [ebp - 0x18]
add edi, 1
push eax
jo 0x40cf54
call sub.MSVBVM60.DLL_VarPtr
mov ecx, edi
push 1
imul ecx, ecx, 2
jo 0x40cf54
add ecx, dword [ebp - 0x20]
mov dword [ebp - 0xb8], eax
jo 0x40cf54
push ecx
push eax
call fcn.0040cf59
jmp 0x40cddb
lea eax, [ebp - 0x28]
mov dword [ebp - 0xa4], 0x4008
mov dword [ebp - 0x9c], eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x64]
push eax
call sub.MSVBVM60.DLL_rtcLowerCaseVar
lea eax, [ebp - 0x64]
push 0xc
push eax
lea eax, [ebp - 0x74]
push eax
call sub.MSVBVM60.DLL_rtcRightCharVar
lea eax, [ebp - 0x74]
push 8
push eax
lea eax, [ebp - 0x84]
push eax
call sub.MSVBVM60.DLL_rtcLeftCharVar
lea eax, [ebp - 0x84]
mov dword [ebp - 0xac], 0x404e8c
push eax
lea eax, [ebp - 0xb4]
push eax
mov dword [ebp - 0xb4], 0x8008
call sub.MSVBVM60.DLL___vbaVarTstEq
mov edi, eax
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x64]
push eax
push 3
call sub.MSVBVM60.DLL___vbaFreeVarList
add esp, 0x10
cmp di, si
je 0x40cd6b
lea eax, [ebp - 0x1c]
push eax
call sub.MSVBVM60.DLL_VarPtr
mov ecx, dword [ebp - 0x4c]
push ebx
add ecx, 0x18
mov dword [ebp - 0xb8], eax
jo 0x40cf54
push ecx
push eax
call fcn.0040cf59
push 0x40cf42
jmp 0x40cf22
lea ecx, [ebp - 0x28]
call sub.MSVBVM60.DLL___vbaFreeStr
lea eax, [ebp - 0x40]
mov dword [ebp - 0xb8], eax
lea eax, [ebp - 0xb8]
push eax
push 0
call sub.MSVBVM60.DLL___vbaAryDestruct
ret
call sub.MSVBVM60.DLL___vbaErrorOverflow