Function at 0x409540
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x428220
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x5ee008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_void_]
lea ecx, [ebp - 0x14]
call esi
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0
call esi
mov byte [ebp - 4], 1
lea ecx, [ebp + 8]
mov esi, dword [ebp + 8]
mov edi, dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::constructor_wchar_t__]
push esi
call edi
lea eax, [ebp + 8]
mov byte [ebp - 4], 2
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.Common.dll_class_CTXStringW___cdecl_Util::FS::GetFileName_class_CTXStringW_const__]
add esp, 8
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 3
call dword [0x42b09c]
mov ebx, dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::destructor_void_]
lea ecx, [ebp - 0x18]
call ebx
lea ecx, [ebp + 8]
mov byte [ebp - 4], 1
call ebx
push 0
push str..dat
lea ecx, [ebp - 0x14]
call dword [sym.imp.Common.dll_public:_int___thiscall_CTXStringW::Find_wchar_t_const___int_const]
test eax, eax
jle 0x40974f
push str..tpc
push str..dat
lea ecx, [ebp - 0x14]
call dword [sym.imp.Common.dll_public:_int___thiscall_CTXStringW::Replace_wchar_t_const___wchar_t_const__]
push esi
lea ecx, [ebp - 0x18]
call edi
push eax
lea eax, [ebp + 8]
mov byte [ebp - 4], 4
push eax
call dword [sym.imp.Common.dll_class_CTXStringW___cdecl_Util::File::GetParentDir_class_CTXStringW_const__]
add esp, 8
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 5
call dword [0x42b09c]
lea ecx, [ebp + 8]
call ebx
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call ebx
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x10]
call dword [sym.imp.Common.dll_public:_class_CTXStringW____thiscall_CTXStringW::operator_class_CTXStringW_const__]
mov eax, dword [0x5f3494]
xor ebx, ebx
mov dword [ebp - 0x20], vtable.QMEncrypt::CQMEncryptFile.0
test eax, eax
jne 0x40965d
push str.CreateEncryptFile
call fcn.00412320
add esp, 4
mov dword [0x5f3494], eax
test eax, eax
je 0x409661
call eax
mov ebx, eax
mov dword [ebp - 0x1c], ebx
push esi
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 6
call edi
mov edi, eax
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x10]
mov esi, dword [sym.imp.Common.dll_public:_wchar_t_const____thiscall_CTXStringW::operator_wchar_t_const__void_const]
call esi
mov ecx, edi
mov dword [ebp + 8], eax
call esi
mov ecx, eax
test ebx, ebx
jne 0x409690
xor esi, esi
jmp 0x40969d
push dword [ebp + 8]
mov eax, dword [ebx]
push ecx
mov ecx, ebx
call dword [eax + 0x10]
mov esi, eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 6
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::destructor_void_]
test esi, esi
je 0x4096fd
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp + 8]
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXBSTR::constructor_class_CTXStringW_const__]
mov ecx, eax
mov byte [ebp - 4], 8
call dword [sym.imp.Common.dll_public:_wchar_t____thiscall_CTXBSTR::operator_wchar_t__void_const]
push eax
call dword [sym.imp.Common.dll_int___cdecl_Util::CoreCenter::InitPlatform_wchar_t__]
add esp, 4
mov byte [ebp - 4], 6
lea ecx, [ebp + 8]
mov esi, eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXBSTR::destructor_void_]
lea ecx, [ebp - 0x10]
call dword [sym.imp.Common.dll_public:_wchar_t____thiscall_CTXStringW::GetBuffer_void_]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x10]
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::ReleaseBuffer_int_]
jmp 0x4096ff
xor esi, esi
mov byte [ebp - 4], 9
test ebx, ebx
je 0x409729
mov eax, dword [0x5f3490]
test eax, eax
jne 0x409726
push str.DestroyEncryptFile
call fcn.00412320
add esp, 4
mov dword [0x5f3490], eax
test eax, eax
je 0x409729
push ebx
call eax
mov ebx, dword [sym.imp.Common.dll_public:_void___thiscall_CTXStringW::destructor_void_]
lea ecx, [ebp - 0x10]
call ebx
lea ecx, [ebp - 0x14]
call ebx
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push esi
lea ecx, [ebp - 0x10]
call dword [sym.imp.Common.dll_public:_class_CTXStringW____thiscall_CTXStringW::operator_wchar_t__]
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp + 8]
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXBSTR::constructor_class_CTXStringW_const__]
mov ecx, eax
mov byte [ebp - 4], 0xa
call dword [sym.imp.Common.dll_public:_wchar_t____thiscall_CTXBSTR::operator_wchar_t__void_const]
push eax
call dword [sym.imp.Common.dll_int___cdecl_Util::CoreCenter::InitPlatform_wchar_t__]
add esp, 4
lea ecx, [ebp + 8]
mov esi, eax
call dword [sym.imp.Common.dll_public:_void___thiscall_CTXBSTR::destructor_void_]
jmp 0x40972f