Function at 0x40f080
Capabilities:
Get number of processors
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14c
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x3c], 0x4359dc
mov dword [ebp - 0x38], 0x438034
mov dword [ebp - 0x34], ebp
mov dword [ebp - 0x2c], esp
mov dword [ebp - 0x34], 0x40fa95
lea eax, [ebp - 0x58]
call fcn.00436645
cmp edi, 0x43d198
je 0x40f0e4
mov dword [ebp - 0x50], 0xffffffff
mov dword [esp + 4], edi
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0
mov dword [esp], 0x43d198
call fcn.00405b9c
cmp esi, 0x43d1b4
je 0x40f113
mov dword [ebp - 0x50], 0xffffffff
mov dword [esp + 4], esi
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0
mov dword [esp], 0x43d1b4
call fcn.00405b9c
mov dword [ebp - 0xa0], 7
mov dword [ebp - 0xa4], 0
mov word [ebp - 0xb4], 0
mov dword [ebp - 0x50], 0xffffffff
lea eax, [ebp - 0xb8]
mov dword [esp], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0x43789a
call fcn.00405a48
mov dword [ebp - 0x50], 1
lea eax, [ebp - 0x78]
mov dword [esp], eax
mov dword [esp + 4], 0x43d1b4
call fcn.00406c90
lea esi, [ebp - 0xb4]
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x40f228
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x10], eax
mov ecx, edx
mov dword [ebp - 0x18], ecx
lea eax, [edx + eax]
mov dword [ebp - 0x50], 2
mov dword [ebp - 0x1c], eax
mov dword [esp + 4], eax
lea eax, [ebp - 0xb8]
mov dword [esp], eax
mov dword [esp + 8], 0
call fcn.00405298
test al, al
lea esi, [ebp - 0xb4]
mov edx, dword [ebp - 0x10]
je 0x40f228
cmp dword [ebp - 0xa0], 7
ja 0x40f1cf
mov eax, esi
jmp 0x40f1d5
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x18]
lea eax, [eax + ecx*2]
cmp dword [ebp - 0x60], 7
ja 0x40f1e6
lea ecx, [ebp - 0x74]
jmp 0x40f1e9
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x50], 3
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004253e0
cmp dword [ebp - 0xa0], 7
lea esi, [ebp - 0xb4]
ja 0x40f213
mov eax, esi
jmp 0x40f219
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xa4], ecx
mov word [eax + ecx*2], 0
mov ecx, dword [ebp - 0x60]
cmp ecx, 8
jb 0x40f24a
mov eax, dword [ebp - 0x74]
lea ecx, [ecx + ecx + 2]
cmp ecx, 0x1000
jb 0x40f242
mov eax, dword [eax - 4]
mov dword [esp], eax
call fcn.00418f50
cmp dword [0x43d1b0], 7
jbe 0x40f268
mov eax, dword [0x43d19c]
mov dword [ebp - 0xbc], eax
test eax, eax
jne 0x40f277
xor ecx, ecx
xor eax, eax
jmp 0x40f292
mov dword [ebp - 0xbc], 0x43d19c
mov eax, 0x43d19c
mov dword [esp], eax
call fcn.00424da4
add eax, eax
cmp eax, 0xffdc
jb 0x40f28d
mov eax, 0xffdc
mov ecx, eax
add ecx, 2
mov word [ebp - 0xbe], cx
mov word [ebp - 0xc0], ax
mov dword [ebp - 0xe4], str.C:WindowsSystem32_regsvr32.exe
mov dword [ebp - 0xe8], 0x420040
cmp dword [ebp - 0xa0], 7
jbe 0x40f2d3
mov esi, dword [ebp - 0xb4]
mov dword [ebp - 0xc4], esi
test esi, esi
jne 0x40f2d9
xor ecx, ecx
xor eax, eax
jmp 0x40f2f4
mov dword [ebp - 0xc4], esi
mov dword [esp], esi
call fcn.00424da4
add eax, eax
cmp eax, 0xffdc
jb 0x40f2ef
mov eax, 0xffdc
mov ecx, eax
add ecx, 2
mov word [ebp - 0xc6], cx
mov word [ebp - 0xc8], ax
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x50], 4
mov dword [esp], 0x43765c
call sub.KERNEL32.DLL_GetModuleHandleW
sub esp, 4
test eax, eax
je 0x40f3c7
mov dword [ebp - 0x50], 5
mov dword [esp], eax
mov dword [esp + 4], str.RtlCreateProcessParametersEx
mov dword [ebp - 0x10], eax
call sub.KERNEL32.DLL_GetProcAddress
sub esp, 8
mov ecx, dword [ebp - 0x10]
test eax, eax
je 0x40f3b5
mov dword [ebp - 0x50], 7
lea ecx, [ebp - 0xc8]
mov dword [esp + 0x10], ecx
lea ecx, [ebp - 0xc0]
mov dword [esp + 0xc], ecx
lea ecx, [ebp - 0xe8]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x7c]
mov dword [esp], ecx
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
call eax
sub esp, 0x2c
jmp 0x40f3c7
mov dword [ebp - 0x50], 6
mov dword [esp], ecx
call sub.KERNEL32.DLL_FreeLibrary
sub esp, 4
mov dword [ebp - 0x50], 8
lea eax, [ebp - 0x120]
mov dword [esp], eax
mov dword [esp + 8], 0x4376d8
mov dword [esp + 4], 0x43d198
call fcn.004042c0
mov dword [ebp - 0x50], 9
lea eax, [ebp - 0x104]
mov dword [esp], eax
mov dword [esp + 4], 0x43d1b4
call fcn.00406c90
mov dword [ebp - 0x50], 0xa
lea eax, [ebp - 0x104]
mov dword [esp + 8], eax
lea eax, [ebp - 0x120]
mov dword [esp + 4], eax
lea eax, [ebp - 0x78]
mov dword [esp], eax
call fcn.004103d0
mov dword [ebp - 0x50], 0xb
lea eax, [ebp - 0x78]
mov dword [esp], eax
call fcn.0040b1b8
mov ebx, eax
mov ecx, dword [ebp - 0x60]
cmp ecx, 8
jb 0x40f465
mov eax, dword [ebp - 0x74]
lea ecx, [ecx + ecx + 2]
cmp ecx, 0x1000
jb 0x40f45d
mov eax, dword [eax - 4]
mov dword [esp], eax
call fcn.00418f50
mov dword [ebp - 0x60], 7
mov dword [ebp - 0x64], 0
mov word [ebp - 0x74], 0
mov ecx, dword [ebp - 0xec]
cmp ecx, 8
jb 0x40f4a1
mov eax, dword [ebp - 0x100]
lea ecx, [ecx + ecx + 2]
cmp ecx, 0x1000
jb 0x40f499
mov eax, dword [eax - 4]
mov dword [esp], eax
call fcn.00418f50
mov ecx, dword [ebp - 0x108]
cmp ecx, 8
jb 0x40f4c9
mov eax, dword [ebp - 0x11c]
lea ecx, [ecx + ecx + 2]
cmp ecx, 0x1000
jb 0x40f4c1
mov eax, dword [eax - 4]
mov dword [esp], eax
call fcn.00418f50
test bl, bl
je 0x40f4d9
mov dword [ebp - 0x50], 0xc
call fcn.00406d80
mov eax, dword fs:[0x18]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x50], 0xd
mov dword [esp], 0x43765c
call sub.KERNEL32.DLL_GetModuleHandleW
sub esp, 4
test eax, eax
je 0x40f550
mov dword [ebp - 0x50], 0xe
mov dword [esp], eax
mov dword [esp + 4], str.RtlAllocateHeap
mov dword [ebp - 0x1c], eax
call sub.KERNEL32.DLL_GetProcAddress
sub esp, 8
mov ecx, dword [ebp - 0x1c]
test eax, eax
je 0x40f559
mov dword [ebp - 0x50], 0x10
mov ecx, dword [ebp - 0x18]
mov dword [esp], ecx
mov dword [esp + 8], 8
mov dword [esp + 4], 8
call eax
sub esp, 0xc
mov dword [ebp - 0x18], eax
jmp 0x40f572
mov dword [ebp - 0x18], 0
jmp 0x40f572
mov dword [ebp - 0x50], 0xf
mov dword [ebp - 0x18], 0
mov dword [esp], ecx
call sub.KERNEL32.DLL_FreeLibrary
sub esp, 4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x50], 0x11
mov dword [esp], 0x43765c
call sub.KERNEL32.DLL_GetModuleHandleW
sub esp, 4
test eax, eax
je 0x40f5e3
mov dword [ebp - 0x50], 0x12
mov dword [esp], eax
mov dword [esp + 4], str.RtlAllocateHeap
mov dword [ebp - 0x14], eax
call sub.KERNEL32.DLL_GetProcAddress
sub esp, 8
mov ecx, dword [ebp - 0x14]
test eax, eax
je 0x40f5ec
mov dword [ebp - 0x50], 0x14
mov ecx, dword [ebp - 0x1c]
mov dword [esp], ecx
mov dword [esp + 8], 0x10
mov dword [esp + 4], 8
call eax
sub esp, 0xc
mov dword [ebp - 0x1c], eax
jmp 0x40f605
mov dword [ebp - 0x1c], 0
jmp 0x40f605
mov dword [ebp - 0x50], 0x13
mov dword [ebp - 0x1c], 0
mov dword [esp], ecx
call sub.KERNEL32.DLL_FreeLibrary
sub esp, 4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x50], 0x15
mov dword [esp], 0x43765c
call sub.KERNEL32.DLL_GetModuleHandleW
sub esp, 4
test eax, eax
je 0x40f676
mov dword [ebp - 0x50], 0x16
mov dword [esp], eax
mov dword [esp + 4], str.RtlAllocateHeap
mov dword [ebp - 0x20], eax
call sub.KERNEL32.DLL_GetProcAddress
sub esp, 8
mov ecx, dword [ebp - 0x20]
test eax, eax
je 0x40f67f
mov dword [ebp - 0x50], 0x18
mov ecx, dword [ebp - 0x14]
mov dword [esp], ecx
mov dword [esp + 8], 0x30
mov dword [esp + 4], 8
call eax
sub esp, 0xc
mov dword [ebp - 0x5c], eax
jmp 0x40f698
mov dword [ebp - 0x5c], 0
jmp 0x40f698
mov dword [ebp - 0x50], 0x17
mov dword [ebp - 0x5c], 0
mov dword [esp], ecx
call sub.KERNEL32.DLL_FreeLibrary
sub esp, 4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x50], 0x19
mov dword [esp], 0x43765c
call sub.KERNEL32.DLL_GetModuleHandleW
sub esp, 4
test eax, eax
je 0x40f709
mov dword [ebp - 0x50], 0x1a
mov dword [esp], eax
mov dword [esp + 4], str.RtlAllocateHeap
mov dword [ebp - 0x20], eax
call sub.KERNEL32.DLL_GetProcAddress
sub esp, 8
mov ecx, dword [ebp - 0x20]
test eax, eax
je 0x40f712
mov dword [ebp - 0x50], 0x1c
mov ecx, dword [ebp - 0x14]
mov dword [esp], ecx
mov dword [esp + 8], 0x64
mov dword [esp + 4], 8
call eax
sub esp, 0xc
mov dword [ebp - 0x14], eax
jmp 0x40f72b
mov dword [ebp - 0x14], 0
jmp 0x40f72b
mov dword [ebp - 0x50], 0x1b
mov dword [ebp - 0x14], 0
mov dword [esp], ecx
call sub.KERNEL32.DLL_FreeLibrary
sub esp, 4
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 4], 0x10003
mov dword [ecx + 8], 8
mov eax, dword [ebp - 0x1c]
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x14], 6
mov dword [ecx + 0x18], 0x30
mov eax, dword [ebp - 0x5c]
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x24], 0x20005
mov dword [ecx + 0x28], 0x48
mov dword [ecx + 0x2c], str.__C:WindowsSystem32_regsvr32.exe
mov dword [ecx + 0x34], 0x2000a
mov dword [ecx + 0x38], 8
mov eax, dword [ebp - 0x18]
mov dword [ecx + 0x3c], eax
mov dword [ebp - 0x74], 0x2000
mov dword [ebp - 0x78], 0
mov dword [ecx + 0x44], 0x20010
mov dword [ecx + 0x48], 8
lea eax, [ebp - 0x78]
mov dword [ecx + 0x4c], eax
mov dword [ecx], 0x54
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x50], 0x1d
mov dword [esp], 0x43765c
call sub.KERNEL32.DLL_GetModuleHandleW
sub esp, 4
test eax, eax
je 0x40f82c
mov dword [ebp - 0x50], 0x1e
mov dword [esp], eax
mov dword [esp + 4], str.RtlFreeHeap
mov dword [ebp - 0xcc], eax
call sub.KERNEL32.DLL_GetProcAddress
sub esp, 8
mov ecx, dword [ebp - 0xcc]
test eax, eax
je 0x40f81a
mov dword [ebp - 0x50], 0x20
mov ecx, dword [ebp - 0x14]
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x20]
mov dword [esp], ecx
mov dword [esp + 4], 0
call eax
sub esp, 0xc
jmp 0x40f82c
mov dword [ebp - 0x50], 0x1f
mov dword [esp], ecx
call sub.KERNEL32.DLL_FreeLibrary
sub esp, 4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x50], 0x21
mov dword [esp], 0x43765c
call sub.KERNEL32.DLL_GetModuleHandleW
sub esp, 4
test eax, eax
je 0x40f8ab
mov dword [ebp - 0x50], 0x22
mov dword [esp], eax
mov dword [esp + 4], str.RtlFreeHeap
mov dword [ebp - 0x20], eax
call sub.KERNEL32.DLL_GetProcAddress
sub esp, 8
mov ecx, dword [ebp - 0x20]
test eax, eax
je 0x40f899
mov dword [ebp - 0x50], 0x24
mov ecx, dword [ebp - 0x18]
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x14]
mov dword [esp], ecx
mov dword [esp + 4], 0
call eax
sub esp, 0xc
jmp 0x40f8ab
mov dword [ebp - 0x50], 0x23
mov dword [esp], ecx
call sub.KERNEL32.DLL_FreeLibrary
sub esp, 4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x50], 0x25
mov dword [esp], 0x43765c
call sub.KERNEL32.DLL_GetModuleHandleW
sub esp, 4
test eax, eax
je 0x40f92a
mov dword [ebp - 0x50], 0x26
mov dword [esp], eax
mov dword [esp + 4], str.RtlFreeHeap
mov dword [ebp - 0x14], eax
call sub.KERNEL32.DLL_GetProcAddress
sub esp, 8
mov ecx, dword [ebp - 0x14]
test eax, eax
je 0x40f918
mov dword [ebp - 0x50], 0x28
mov ecx, dword [ebp - 0x1c]
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x18]
mov dword [esp], ecx
mov dword [esp + 4], 0
call eax
sub esp, 0xc
jmp 0x40f92a
mov dword [ebp - 0x50], 0x27
mov dword [esp], ecx
call sub.KERNEL32.DLL_FreeLibrary
sub esp, 4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x50], 0x29
mov dword [esp], 0x43765c
call sub.KERNEL32.DLL_GetModuleHandleW
sub esp, 4
test eax, eax
je 0x40f9a9
mov dword [ebp - 0x50], 0x2a
mov dword [esp], eax
mov dword [esp + 4], str.RtlFreeHeap
mov dword [ebp - 0x18], eax
call sub.KERNEL32.DLL_GetProcAddress
sub esp, 8
mov ecx, dword [ebp - 0x18]
test eax, eax
je 0x40f997
mov dword [ebp - 0x50], 0x2c
mov ecx, dword [ebp - 0x5c]
mov dword [esp + 8], ecx
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
mov dword [esp + 4], 0
call eax
sub esp, 0xc
jmp 0x40f9a9
mov dword [ebp - 0x50], 0x2b
mov dword [esp], ecx
call sub.KERNEL32.DLL_FreeLibrary
sub esp, 4
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x50], 0x2d
mov dword [esp], 0x43765c
call sub.KERNEL32.DLL_GetModuleHandleW
sub esp, 4
test eax, eax
je 0x40fa1f
mov dword [ebp - 0x50], 0x2e
mov dword [esp], eax
mov dword [esp + 4], str.RtlDestroyProcessParameters
mov dword [ebp - 0x18], eax
call sub.KERNEL32.DLL_GetProcAddress
sub esp, 8
mov ecx, dword [ebp - 0x18]
test eax, eax
je 0x40fa01
mov dword [ebp - 0x50], 0x31
mov ecx, dword [ebp - 0x10]
mov dword [esp], ecx
call eax
sub esp, 4
jmp 0x40fa1f
mov dword [ebp - 0x50], 0x2f
mov dword [esp], ecx
call sub.KERNEL32.DLL_FreeLibrary
sub esp, 4
mov dword [ebp - 0x50], 0x30
call sub.KERNEL32.DLL_GetLastError
mov dword [ebp - 0x50], 0x32
mov dword [esp], 0
call sub.KERNEL32.DLL_CloseHandle
sub esp, 4
mov dword [ebp - 0x50], 0x33
mov dword [esp], 0
call sub.KERNEL32.DLL_CloseHandle
sub esp, 4
mov dword [ebp - 0x50], 0x34
call sub.KERNEL32.DLL_GetLastError
mov ecx, dword [ebp - 0xa0]
cmp ecx, 8
jb 0x40fa7f
mov eax, dword [ebp - 0xb4]
lea ecx, [ecx + ecx + 2]
cmp ecx, 0x1000
jb 0x40fa77
mov eax, dword [eax - 4]
mov dword [esp], eax
call fcn.00418f50
lea eax, [ebp - 0x58]
mov dword [esp], eax
call fcn.00436666
add esp, 0x14c
pop esi
pop edi
pop ebx
pop ebp
ret