Function at 0x45b9b0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51ea44
mov eax, dword fs:[0]
push eax
mov eax, 0x10030
call fcn.004ec080
mov eax, dword [0x5ba11c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x10018], ebx
mov esi, dword [ebp + 8]
mov dword [ebp - 0x10038], ebx
mov dword [ebx + 4], 0
mov dword [ebx + 0x14], 0
mov dword [ebp - 0x10028], esi
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x1c], 0
mov dword [ebp - 4], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
mov byte [ebx + 0x44], 0
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x3c], 0xffffffff
mov dword [ebx + 0x40], 0xffffffff
mov dword [ebx + 0x48], 0
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x54], 0
mov dword [ebx + 0x20], vtable.WTL::CMessageFilter.0
mov dword [ebx + 0x24], vtable.WTL::CIdleHandler.0
mov dword [ebx], vtable.CMainDialog.0
mov dword [ebx + 0x20], vtable.CMainDialog.2.0
mov dword [ebx + 0x24], vtable.CMainDialog.1.0
mov dword [ebx + 0x58], 0
mov byte [ebp - 4], 3
call fcn.0044d220
mov ecx, eax
test ecx, ecx
je 0x45c1d9
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx + 0x5c], eax
lea ecx, [ebx + 0x64]
call fcn.0045c280
mov byte [ebp - 4], 6
call fcn.0044d220
mov ecx, eax
test ecx, ecx
je 0x45c1e3
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx + 0x7c], eax
lea ecx, [ebx + 0x80]
call fcn.0045c280
lea ecx, [ebx + 0x98]
call fcn.0045c4b0
lea ecx, [ebx + 0xa8]
call fcn.0045c280
mov dword [ebx + 0xc8], 0
mov dword [ebx + 0xcc], 0
mov dword [ebx + 0xd0], 0
mov dword [ebx + 0xd4], 0
mov dword [ebx + 0xd8], 0
mov dword [ebx + 0xdc], 0
mov dword [ebx + 0xe0], 0
xorps xmm0, xmm0
movq qword [ebx + 0xe4], xmm0
mov byte [ebx + 0xe4], 0
mov byte [ebx + 0xe8], 0
mov dword [ebx + 0xec], 0
mov dword [ebx + 0xf0], 0
mov dword [ebx + 0xf4], 0
mov dword [ebx + 0xf8], 0
mov dword [ebx + 0xfc], 0
mov dword [ebx + 0x100], 0
mov dword [ebx + 0x104], 0
mov dword [ebx + 0x108], 0
mov byte [ebp - 4], 0xd
call fcn.0044d220
mov ecx, eax
test ecx, ecx
je 0x45c1ed
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx + 0x10c], eax
push esi
lea ecx, [ebx + 0x110]
mov byte [ebp - 4], 0xe
call fcn.00452b60
mov dword [ebx + 0x114], 0x1f4
mov dword [ebx + 0x118], 1
mov byte [ebp - 4], 0x10
call fcn.0044d220
mov ecx, eax
test ecx, ecx
je 0x45c1f7
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx + 0x11c], eax
mov dword [ebx + 0x120], 0
lea ecx, [ebx + 0x124]
mov byte [ebp - 4], 0x12
call fcn.004d6970
lea ecx, [ebx + 0x128]
mov byte [ebp - 4], 0x13
call fcn.004d6970
mov byte [ebp - 4], 0x14
lea esi, [ebx + 0x130]
push 0xc
mov dword [ebx + 0x12c], 0
mov dword [ebp - 0x10018], esi
call fcn.004eb06d
add esp, 4
mov dword [ebp - 0x10018], eax
mov ecx, eax
push ebx
call fcn.0045b4b0
mov dword [esi], eax
push 4
mov byte [ebp - 4], 0x15
call fcn.004eb06d
add esp, 4
mov dword [ebp - 0x10018], eax
push 0
mov ecx, eax
mov byte [ebp - 4], 0x16
call fcn.004a6900
mov esi, eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x10018]
lea eax, [ebx + 0x120]
cmp eax, ecx
je 0x45bcc0
mov ecx, dword [eax]
mov dword [ebp - 0x10020], ecx
mov dword [eax], esi
test ecx, ecx
je 0x45bcd4
call sub.ole32.dll_CoUninitialize
push 4
push dword [ebp - 0x10020]
jmp 0x45bccc
test esi, esi
je 0x45bcd4
call sub.ole32.dll_CoUninitialize
push 4
push esi
call fcn.004eb418
add esp, 8
mov esi, dword [ebx + 0x110]
xorps xmm0, xmm0
movsd qword [ebp - 0x10034], xmm0
cmp dword [esi - 0xc], 0
je 0x45bfbf
push 0x10000
lea eax, [ebp - 0x10014]
push 0
push eax
call fcn.004ed4d0
add esp, 0xc
lea eax, [ebp - 0x10014]
push 0
push eax
push 0x8000
push esi
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
xor eax, eax
mov word [ebp - 0x16], ax
call fcn.0044d220
mov ecx, eax
test ecx, ecx
je 0x45c201
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1001c], eax
lea eax, [ebp - 0x10014]
mov byte [ebp - 4], 0x17
test eax, 0xffff0000
jne 0x45bd5f
movzx eax, ax
lea ecx, [ebp - 0x1001c]
push eax
call fcn.00452740
jmp 0x45bd92
lea ecx, [ebp - 0x10014]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45bd70
sub ecx, edx
lea eax, [ebp - 0x10014]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x1001c]
call fcn.00453760
mov byte [ebp - 4], 0x18
mov eax, dword [ebp - 0x1001c]
mov edi, dword [ebx + 0x110]
sub edi, 0x10
lea esi, [eax - 0x10]
cmp esi, edi
je 0x45be0a
mov ecx, dword [edi + 0xc]
shr ecx, 0x1f
test cl, cl
jne 0x45bdf7
mov ecx, dword [esi]
cmp ecx, dword [edi]
jne 0x45bdf7
mov ecx, esi
call fcn.00453690
mov dword [ebp - 0x10020], eax
mov byte [ebp - 4], 0x19
lea ecx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x45bde4
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x10020]
lea edi, [ebx + 0x110]
add eax, 0x10
mov dword [edi], eax
jmp 0x45be10
push dword [esi + 4]
lea edi, [ebx + 0x110]
push eax
mov ecx, edi
call fcn.00453760
jmp 0x45be10
lea edi, [ebx + 0x110]
mov byte [ebp - 4], 0x1a
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x45be29
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x15
call fcn.004d03a0
mov esi, eax
mov ecx, esi
call fcn.004d0140
cmp byte [0x5c2000], 0
jne 0x45be94
mov ecx, 0xf0
call fcn.004d0a00
mov dword [ebp - 0x10018], eax
mov byte [ebp - 4], 0x1b
test eax, eax
je 0x45be89
movsd xmm0, qword [ebp - 0x10034]
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
push 0x5c2000
sub esp, 0xc
push 0x23f
push str.C:BuildAgentwork4d643bb3f4c71f96RemoteInstallerInstallerUIMainDlg.cpp
push 0x50
call fcn.004d0210
jmp 0x45be8b
xor eax, eax
mov byte [ebp - 4], 0x15
mov dword [0x5c4628], eax
mov ecx, esi
call fcn.004d0150
mov ecx, dword [0x5c4628]
lea ecx, [ecx + 0xd0]
call fcn.004d0140
mov eax, dword [0x5c4628]
mov esi, dword [edi]
mov eax, dword [eax]
mov eax, dword [eax + 0x48]
mov dword [ebp - 0x10018], eax
call fcn.0044d220
mov ecx, eax
test ecx, ecx
je 0x45c20b
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1001c], eax
push esi
lea ecx, [ebp - 0x1001c]
mov byte [ebp - 4], 0x1c
call fcn.00452e50
test al, al
jne 0x45befb
push esi
lea ecx, [ebp - 0x1001c]
call fcn.00452330
mov byte [ebp - 4], 0x1d
call fcn.0044d220
mov ecx, eax
test ecx, ecx
je 0x45c215
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10020], eax
mov esi, dword [ebp - 0x10028]
lea ecx, [ebp - 0x10020]
push esi
mov byte [ebp - 4], 0x1e
call fcn.00452e50
test al, al
jne 0x45bf42
push esi
lea ecx, [ebp - 0x10020]
call fcn.00452330
mov byte [ebp - 4], 0x1f
mov edi, dword [ebp - 0x1001c]
mov esi, dword [ebp - 0x10020]
push edi
push esi
push str._MSI__s_:__s
push dword [0x5c4628]
call dword [ebp - 0x10018]
add esp, 0x10
lea edx, [esi - 0x10]
or esi, 0xffffffff
mov byte [ebp - 4], 0x20
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x45bf86
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov byte [ebp - 4], 0x21
lock xadd dword [edi + 0xc], esi
dec esi
test esi, esi
jg 0x45bf9f
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x15
mov ecx, dword [0x5c4628]
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [0x5c4628]
lea ecx, [ecx + 0xd0]
call fcn.004d0150
mov eax, dword [ebp + 0xc]
mov ecx, 0x64
cmp eax, ecx
cmovl eax, ecx
mov ecx, 0x2710
cmp eax, ecx
cmovg eax, ecx
mov dword [ebx + 0x114], eax
call fcn.004d03a0
mov esi, eax
mov ecx, esi
call fcn.004d0140
cmp byte [0x5c1ff0], 0
jne 0x45c043
mov ecx, 0xf0
call fcn.004d0a00
mov dword [ebp - 0x10018], eax
mov byte [ebp - 4], 0x22
test eax, eax
je 0x45c038
movsd xmm0, qword [ebp - 0x10034]
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
push 0x5c1ff0
sub esp, 0xc
push 0x245
push str.C:BuildAgentwork4d643bb3f4c71f96RemoteInstallerInstallerUIMainDlg.cpp
push 0x48
call fcn.004d0210
jmp 0x45c03a
xor eax, eax
mov byte [ebp - 4], 0x15
mov dword [0x5c463c], eax
mov ecx, esi
call fcn.004d0150
mov ecx, dword [0x5c463c]
lea ecx, [ecx + 0xd0]
call fcn.004d0140
mov ecx, dword [0x5c463c]
push dword [ebx + 0x114]
push str.Set_m_lConnectionDelay_ms_to___d_
mov eax, dword [ecx]
push ecx
call dword [eax + 0x48]
mov ecx, dword [0x5c463c]
add esp, 0xc
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [0x5c463c]
lea ecx, [ecx + 0xd0]
call fcn.004d0150
mov eax, dword [ebp + 0x10]
xor edx, edx
test eax, eax
cmovs eax, edx
mov dword [ebx + 0x118], eax
call fcn.004d03a0
mov esi, eax
mov ecx, esi
call fcn.004d0140
cmp byte [0x5c2074], 0
jne 0x45c108
mov ecx, 0xf0
call fcn.004d0a00
mov dword [ebp - 0x10018], eax
mov byte [ebp - 4], 0x23
test eax, eax
je 0x45c0fd
movsd xmm0, qword [ebp - 0x10034]
sub esp, 8
mov ecx, eax
movsd qword [esp], xmm0
push 0x5c2074
sub esp, 0xc
push 0x249
push str.C:BuildAgentwork4d643bb3f4c71f96RemoteInstallerInstallerUIMainDlg.cpp
push 0x48
call fcn.004d0210
jmp 0x45c0ff
xor eax, eax
mov byte [ebp - 4], 0x15
mov dword [0x5c4680], eax
mov ecx, esi
call fcn.004d0150
mov ecx, dword [0x5c4680]
lea ecx, [ecx + 0xd0]
call fcn.004d0140
mov ecx, dword [0x5c4680]
push dword [ebx + 0x118]
push str.Set_m_NumberOfParallelThreads_to___d_
mov eax, dword [ecx]
push ecx
call dword [eax + 0x48]
mov ecx, dword [0x5c4680]
add esp, 0xc
mov eax, dword [ecx]
call dword [eax + 0x3c]
mov ecx, dword [0x5c4680]
lea ecx, [ecx + 0xd0]
call fcn.004d0150
lea eax, [ebp - 0x10024]
push eax
call fcn.004d6451
add esp, 4
lea eax, [ebp - 0x10024]
mov byte [ebp - 4], 0x24
push eax
lea ecx, [ebx + 0x124]
call fcn.004d69dd
push 0x80
push 1
lea ecx, [ebx + 0x124]
call fcn.004d6a31
lea eax, [ebp - 0x10024]
push eax
lea ecx, [ebx + 0x128]
call fcn.004d69dd
push 0x40
push 1
lea ecx, [ebx + 0x128]
call fcn.004d6a31
lea ecx, [ebp - 0x10024]
call fcn.004d69d1
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004eabba
mov esp, ebp
pop ebp
ret 0xc
push 0x80004005
call fcn.0044a700
push 0x80004005
call fcn.0044a700
push 0x80004005
call fcn.0044a700
push 0x80004005
call fcn.0044a700
push 0x80004005
call fcn.0044a700
push 0x80004005
call fcn.0044a700
push 0x80004005
call fcn.0044a700
int3