Function at 0x420410
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push 0x401c36
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x90
push ebx
push esi
push edi
mov dword [ebp - 0x14], esp
mov dword [ebp - 0x10], 0x401ae0
xor edi, edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x90], edi
push 1
call dword [sym.imp.MSVBVM60.DLL___vbaOnError]
mov eax, dword [ebp + 8]
mov esi, dword [eax]
mov ecx, dword [esi]
lea edx, [ebp - 0x40]
push edx
push esi
call dword [ecx + 0x64]
fnclex
cmp eax, edi
jge 0x4204ac
push 0x64
push 0x405220
push esi
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
mov dword [ebp - 0x80], 0x407258
mov dword [ebp - 0x88], 8
lea edx, [ebp - 0x88]
lea ecx, [ebp - 0x68]
call dword [sym.imp.MSVBVM60.DLL___vbaVarDup]
push edi
push 0xffffffffffffffff
lea eax, [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x40]
push ecx
lea edx, [ebp - 0x78]
push edx
call dword [sym.imp.MSVBVM60.DLL_rtcSplit]
lea eax, [ebp - 0x78]
push eax
push 0x2008
call dword [sym.imp.MSVBVM60.DLL___vbaAryVar]
mov dword [ebp - 0x90], eax
lea ecx, [ebp - 0x90]
push ecx
lea edx, [ebp - 0x34]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaAryCopy]
lea ecx, [ebp - 0x40]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x68]
push ecx
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVarList]
add esp, 0xc
mov eax, dword [ebp - 0x34]
cmp eax, edi
je 0x420548
cmp word [eax], 1
jne 0x420548
mov esi, dword [eax + 0x14]
neg esi
cmp esi, dword [eax + 0x10]
jb 0x420543
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [ebp - 0x34]
shl esi, 2
jmp 0x420553
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov esi, eax
mov eax, dword [ebp - 0x34]
push eax
lea edx, [ebp - 0x3c]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaAryLock]
mov ecx, dword [ebp - 0x3c]
cmp ecx, edi
je 0x420587
cmp word [ecx], 1
jne 0x420587
mov edi, dword [ecx + 0x14]
neg edi
cmp edi, dword [ecx + 0x10]
jb 0x42057e
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [ebp - 0x3c]
lea eax, [edi*4]
jmp 0x420590
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ecx + 0xc]
add ecx, eax
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x88], 0x4008
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + esi]
push ecx
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaLenBstr]
call esi
sub eax, 1
jo 0x42088e
push eax
lea edx, [ebp - 0x88]
push edx
lea eax, [ebp - 0x68]
push eax
mov ebx, dword [sym.imp.MSVBVM60.DLL_rtcRightCharVar]
call ebx
lea ecx, [ebp - 0x3c]
push ecx
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaAryUnlock]
call edi
lea edx, [ebp - 0x68]
push edx
call dword [sym.imp.MSVBVM60.DLL___vbaI2ErrVar]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x68]
push eax
lea ecx, [ebp - 0x68]
push ecx
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVarList]
add esp, 0xc
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x42063b
cmp word [eax], 1
jne 0x42063b
mov ecx, 1
sub ecx, dword [eax + 0x14]
mov dword [ebp - 0x98], ecx
cmp ecx, dword [eax + 0x10]
jb 0x42062c
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x98]
lea edx, [ecx*4]
mov dword [ebp - 0xac], edx
jmp 0x42064a
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaAryLock]
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
je 0x420689
cmp word [ecx], 1
jne 0x420689
mov eax, 1
sub eax, dword [ecx + 0x14]
mov dword [ebp - 0x94], eax
cmp eax, dword [ecx + 0x10]
jb 0x420684
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x94]
shl eax, 2
jmp 0x420692
call dword [sym.imp.MSVBVM60.DLL___vbaGenerateBoundsError]
mov ecx, dword [ebp - 0x3c]
mov ecx, dword [ecx + 0xc]
add ecx, eax
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x88], 0x4008
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0xac]
mov edx, dword [eax + ecx]
push edx
call esi
sub eax, 1
jo 0x42088e
push eax
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x68]
push ecx
call ebx
lea edx, [ebp - 0x3c]
push edx
call edi
lea eax, [ebp - 0x68]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaI2ErrVar]
movsx ebx, ax
lea ecx, [ebp - 0x68]
push ecx
lea edx, [ebp - 0x68]
push edx
push 2
call dword [sym.imp.MSVBVM60.DLL___vbaFreeVarList]
add esp, 0xc
push 0x407ef8
push 0x407f34
mov edi, dword [sym.imp.MSVBVM60.DLL___vbaStrCat]
call edi
mov edx, eax
lea ecx, [ebp - 0x40]
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaStrMove]
call esi
push eax
push 0x4079dc
call edi
mov edx, eax
lea ecx, [ebp - 0x44]
call esi
push eax
push ebx
call dword [sym.imp.MSVBVM60.DLL___vbaStrI4]
mov edx, eax
lea ecx, [ebp - 0x48]
call esi
push eax
call edi
mov edx, eax
lea ecx, [ebp - 0x4c]
call esi
push eax
push 0x407fbc
call edi
mov edx, eax
lea ecx, [ebp - 0x50]
call esi
push eax
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaStrI2]
mov edx, eax
lea ecx, [ebp - 0x54]
call esi
push eax
call edi
mov edx, eax
lea ecx, [ebp - 0x58]
call esi
push eax
push 0x407a24
call edi
mov edx, eax
lea ecx, [ebp - 0x30]
call esi
lea ecx, [ebp - 0x58]
push ecx
lea edx, [ebp - 0x54]
push edx
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x4c]
push ecx
lea edx, [ebp - 0x48]
push edx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x40]
push ecx
push 7
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStrList]
add esp, 0x20
push 0
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaObjIs]
test ax, ax
jne 0x4207df
mov eax, dword [0x423034]
mov ecx, dword [eax]
lea edx, [ebp - 0x8c]
push edx
mov edx, dword [ebp - 0x30]
push edx
push eax
call dword [ecx + 0x30]
fnclex
test eax, eax
jge 0x4207df
push 0x30
push 0x406364
mov ecx, dword [0x423034]
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
mov dword [ebp - 0x2c], 0xffffffff
call dword [sym.imp.MSVBVM60.DLL___vbaExitProc]
push 0x420877
jmp 0x420851
lea ecx, [ebp - 0x24]
mov esi, dword [sym.imp.MSVBVM60.DLL___vbaFreeObj]
call esi
lea ecx, [ebp - 0x28]
call esi
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVBVM60.DLL___vbaFreeStr]
lea eax, [ebp - 0x34]
push eax
push 0
call dword [sym.imp.MSVBVM60.DLL___vbaAryDestruct]
ret
call dword [sym.imp.MSVBVM60.DLL___vbaErrorOverflow]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop