Function at 0x42dc33
Capabilities:
Create process on windows
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x49ae3f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x264
mov eax, dword [0x4bc410]
xor eax, esp
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x268], eax
mov dword [esp + 0x20], esi
mov dword [esi], 0x4a5800
xor ebp, ebp
mov dword [esp + 0x274], ebp
push 0x4bcff8
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
cmp dword [esi + 0xcc], ebp
je 0x42de55
push ebx
push edi
lea ecx, [esp + 0x10]
call dword [0x49f754]
push str.UpgradeInfo.cfg
lea eax, [esp + 0x18]
push 0x4bc618
push eax
mov byte [esp + 0x288], 0x10
call fcn.00401050
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x280], 0x11
call dword [0x49f214]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov edx, dword [esi + 0xb4]
push 0xa
lea ecx, [esp + 0x74]
push ecx
push edx
call dword [sym.imp.MSVCR71.dll__ultoa]
add esp, 0xc
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esi + 0xd0]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push eax
push 0x4a5908
push str.Info
call edi
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esi + 0xd4]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push str.DownUrl
push str.Info
call edi
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea eax, [esp + 0x74]
push eax
push str.VersionTime
push str.Info
call edi
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
lea ecx, [esi + 0xb8]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push str.VersionNum
push str.Info
call edi
lea ebx, [esi + 0xdc]
mov ecx, ebx
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::GetLength]
test eax, eax
jle 0x42dd97
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebx
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push str.localzipfile
push str.Info
call edi
lea ebx, [esi + 0xd8]
mov ecx, ebx
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::GetLength]
cmp eax, 5
jle 0x42ddca
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
mov ecx, ebx
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
push str.ReRunParameter
push str.Info
call edi
mov ecx, dword [0x4bc618]
push str.KmLiveUpdate.exe
push ecx
lea edx, [esp + 0x78]
push 0x4a051c
push edx
call dword [sym.imp.MSVCR71.dll_sprintf]
add esp, 0x10
xor eax, eax
mov ecx, 0x11
lea edi, [esp + 0x2c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x30]
push edx
push ebp
push ebp
push ebp
mov dword [esp + 0x2c], eax
push ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
push ebp
mov dword [esp + 0x40], eax
push ebp
lea eax, [esp + 0x90]
push eax
push ebp
mov dword [esp + 0x54], 0x44
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
mov eax, dword [esp + 0x1c]
cmp eax, ebp
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x42de3e
push eax
call edi
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x42de49
push eax
call edi
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
pop edi
pop ebx
mov eax, dword [esi + 0x184]
cmp eax, ebp
je 0x42de68
push eax
call sub.MFC71.DLL_operator_delete_1
add esp, 4
lea ecx, [esi + 0x164]
mov dword [esi + 0x184], ebp
mov dword [esi + 0x188], ebp
mov dword [esi + 0x18c], ebp
mov byte [esp + 0x274], 0xd
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esi + 0x148]
mov byte [esp + 0x274], 0xc
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esi + 0x12c]
mov byte [esp + 0x274], 0xb
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esi + 0x104]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0x100]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0xe0]
mov byte [esp + 0x274], 8
call fcn.0049661e
lea ecx, [esi + 0xdc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0xd8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0xd4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0xd0]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0xc4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0xc0]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0xbc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0xb8]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
mov ecx, esi
mov dword [esp + 0x274], 0xffffffff
call fcn.0049673e
mov ecx, dword [esp + 0x26c]
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x264]
pop ebp
xor ecx, esp
call fcn.00496ace
add esp, 0x270
ret