Function at 0x405600
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x43b004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
push 0
mov dword [ebp - 0x128], 0
call dword [sym.imp.ole32.dll_CoInitialize]
test eax, eax
je 0x405634
cmp eax, 1
jne 0x40563e
mov dword [ebp - 0x128], 1
push 0
push str.SOFTWAREK7_ComputingK7TotalSecurityCommonInfoUpdates
push 0x80000002
mov dword [0x43c4f4], 0
call fcn.00413e50
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, eax
test esi, esi
je 0x405678
push 0x43c4f4
push str.ProductType
push esi
call fcn.00414170
push esi
call ebx
lea eax, [ebp - 0x120]
mov dword [ebp - 0x120], 0x11c
push eax
call fcn.00414e90
add esp, 4
mov ecx, 1
cmp dword [ebp - 0x11c], 6
jbe 0x4056ad
mov dword [0x43c3dc], ecx
mov dword [0x43c3e8], ecx
jmp 0x4056c3
jne 0x4056c9
mov eax, dword [0x43c3dc]
cmp dword [ebp - 0x118], 2
cmovae eax, ecx
mov dword [0x43c3dc], eax
mov dword [0x43c3e0], ecx
push 0
push str.SOFTWAREK7_ComputingK7TotalSecurity
push 0x80000002
mov byte [0x43c3f0], 0
call fcn.00413e50
mov esi, eax
test esi, esi
je 0x4056ff
push 0x104
push 0x43c3f0
push str.DirProductBase
push esi
call fcn.004141c0
push esi
call ebx
push str._silent
push edi
call fcn.00416370
mov ecx, dword [0x43c3e4]
add esp, 8
test eax, eax
mov eax, 1
cmovne ecx, eax
mov dword [0x43c3e4], ecx
call fcn.00401570
push str.K7CmnRes.dll
mov dword [ebp - 0x130], eax
mov byte [ebp - 0x121], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
jne 0x4057da
push str.K7CmnRes.dll
mov byte [ebp - 0x121], 1
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
jne 0x4057da
push eax
push 0x435f14
push 0x80000002
mov byte [0x43db60], al
call fcn.00413e50
mov dword [ebp - 0x12c], eax
test eax, eax
je 0x40579e
push 0x104
push 0x43db60
push str.DirProductBase
push eax
call fcn.004141c0
push dword [ebp - 0x12c]
call ebx
cmp byte [0x43db60], 0
je 0x4057da
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
push 0x435f5c
push 0x43db60
call esi
push str.K7CmnRes.dll
push 0x43db60
call esi
push 0x43db60
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x40598d
sub esp, 0x10
mov ecx, esi
call fcn.0040ed10
add esp, 0x10
mov ebx, eax
cmp byte [ebp - 0x121], 0
je 0x4057fd
test esi, esi
je 0x4057fd
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp ebx, 1
jne 0x40598d
push str._InstallComplete
push edi
call fcn.00416370
add esp, 8
test eax, eax
je 0x405832
call fcn.004049e0
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, ebx
jne 0x405993
xor ebx, ebx
jmp 0x405998
push str._OnUninstall
push edi
call fcn.00416370
add esp, 8
test eax, eax
je 0x40585f
call fcn.00407f60
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
cmp eax, 1
jne 0x405993
xor ebx, ebx
jmp 0x405998
push str._LocalUpdateServer
push edi
call fcn.00416370
add esp, 8
test eax, eax
je 0x40589b
add eax, 0x13
push str.Start
push eax
call fcn.0042104e
add esp, 8
neg eax
sbb eax, eax
lea ecx, [eax + 1]
call fcn.004059f0
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
xor ebx, ebx
jmp 0x405998
push str._UpgradeComplete
push edi
call fcn.00416370
add esp, 8
test eax, eax
je 0x40588e
push 0x1000
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test esi, esi
je 0x40598d
lea ebx, [esi + 0x400]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push str._spawnnow
push eax
call fcn.00416370
add esp, 8
test eax, eax
je 0x40590c
push 0x400
push esi
push edi
mov byte [esi], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push esi
push str.__s___UpgradeComplete
push ebx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x405968
push 0x7530
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
push 0x435f14
push 0x80000002
mov byte [esi], 0
call fcn.00413e50
mov edi, eax
test edi, edi
je 0x405949
push 0x104
push esi
push str.DirProductBase
push edi
call fcn.004141c0
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str._OnUpgrade
push str.K7TSMain.exe
push esi
push str.__s_s___s
push ebx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov edi, 1
push 0
push 0
push ebx
call fcn.00414350
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push eax
call esi
cmp edi, 1
jne 0x405993
xor ebx, ebx
jmp 0x405998
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, 1
cmp dword [ebp - 0x128], 0
je 0x4059a7
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [0x43d8d4]
test eax, eax
je 0x4059c6
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call esi
mov dword [0x43d8d4], 0
cmp dword [ebp - 0x130], 1
jne 0x4059d4
call fcn.00401640
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041559f
mov esp, ebp
pop ebp
ret 0x10