Function at 0x404550
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x41819c
mov eax, dword fs:[0]
push eax
sub esp, 0x240
mov eax, dword [0x42202c]
xor eax, esp
mov dword [esp + 0x23c], eax
push esi
mov eax, dword [0x42202c]
xor eax, esp
push eax
lea eax, [esp + 0x248]
mov dword fs:[0], eax
mov eax, dword [edi + 0x29c]
mov ecx, dword [edi + 0x298]
push eax
push ecx
call fcn.004047e0
cmp word [edi + 0x290], 1
jne 0x4045b7
lea esi, [edi + 0x268]
mov eax, esi
call fcn.0040b7d0
jmp 0x40468a
lea ecx, [esp + 0x18]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_void_]
lea esi, [esp + 0x18]
mov dword [esp + 0x250], 0
call fcn.00407760
push 0x208
lea edx, [esp + 0x3a]
push 0
push edx
mov word [esp + 0x40], 0
call sub.MSVCR80.dll_memset
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp dword [esp + 0x30], 8
jae 0x4045ff
lea eax, [esp + 0x1c]
push eax
push str.QMStart__s.exe
push 0xffffffffffffffff
lea eax, [esp + 0x40]
push 0x104
push eax
call dword [sym.imp.MSVCR80.dll__snwprintf_s]
add esp, 0x14
lea esi, [edi + 0x268]
call fcn.00407560
cmp dword [esi + 0x14], 0
je 0x404668
lea ecx, [esp + 0xc]
push ecx
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_class_std::reverse_iterator_class_std::_String_iterator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::rbegin_void_]
call fcn.004077f0
cmp word [eax], 0x5c
je 0x404668
lea edx, [esp + 0xc]
push edx
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_class_std::reverse_iterator_class_std::_String_iterator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::rbegin_void_]
call fcn.004077f0
cmp word [eax], 0x2f
je 0x404668
push 0x419e10
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::append_wchar_t_const__]
lea eax, [esp + 0x34]
push eax
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::append_wchar_t_const__]
lea ecx, [esp + 0x18]
mov dword [esp + 0x250], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
cmp dword [esi + 0x18], 8
jb 0x404695
mov eax, dword [esi + 4]
jmp 0x404698
lea eax, [esi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
call fcn.0040aad0
cmp byte [eax + 0x39], 0
je 0x4046db
call fcn.0040aad0
call fcn.0040a090
test al, al
je 0x4046db
cmp dword [esi + 0x18], 8
jb 0x4046c3
mov esi, dword [esi + 4]
jmp 0x4046c6
add esi, 4
push esi
push str.OnStartUpgrade___UpdateFile_s
push 0xe
push str..UpdateLogicAutoUpdateLogic.cpp
call fcn.0040a920
add esp, 0x10
xor ecx, ecx
push ecx
mov eax, 0x4040b0
push eax
push ecx
lea eax, [edi + 0x284]
call fcn.00404f50
mov ecx, dword [esp + 0x248]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [esp + 0x23c]
xor ecx, esp
call fcn.004158da
add esp, 0x24c
ret