Function at 0x4318a0
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x4a6273
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x264
mov eax, dword [0x4cbba0]
xor eax, esp
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x268], eax
mov dword [esp + 0x20], esi
mov dword [esi], 0x4b2140
xor ebp, ebp
mov dword [esp + 0x274], ebp
push 0x4cc818
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
cmp dword [esi + 0xd4], ebp
je 0x431ae5
push ebx
push edi
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
push str.UpgradeInfo.cfg
lea eax, [esp + 0x18]
push 0x4cbdc0
push eax
mov byte [esp + 0x288], 0x12
call fcn.004010a0
add esp, 0xc
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x280], 0x13
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_1]
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 + 0xd8]
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push eax
push 0x4b2248
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 + 0xdc]
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 + 0xe4]
mov ecx, ebx
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::GetLength]
test eax, eax
jle 0x431a27
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 + 0xe0]
mov ecx, ebx
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::GetLength]
cmp eax, 5
jle 0x431a5a
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 [0x4cbdc0]
push str.KmLiveUpdate.exe
push ecx
lea edx, [esp + 0x78]
push 0x4ae764
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 0x431ace
push eax
call edi
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x431ad9
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 + 0x194]
cmp eax, ebp
je 0x431af8
push eax
call sub.MFC71.DLL_operator_delete_1
add esp, 4
lea ecx, [esi + 0x174]
mov dword [esi + 0x194], ebp
mov dword [esi + 0x198], ebp
mov dword [esi + 0x19c], ebp
mov byte [esp + 0x274], 0xf
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 + 0x158]
mov byte [esp + 0x274], 0xe
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 + 0x13c]
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 + 0x10c]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0x108]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0xe8]
mov byte [esp + 0x274], 0xa
call fcn.004a1492
lea ecx, [esi + 0xe4]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0xe0]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
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 + 0xcc]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT]
lea ecx, [esi + 0xc8]
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.004a1498
mov ecx, dword [esp + 0x26c]
pop esi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x264]
pop ebp
xor ecx, esp
call fcn.004a17d1
add esp, 0x270
ret