Function at 0x405f90
Capabilities:
Delete file

Disassembly:
push 0xffffffffffffffff
push 0x408c70
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
xor ebx, ebx
push esi
mov dword [esp + 0xc], ebx
mov eax, dword [0x41955c]
lea edx, [esp + 0xc]
push edx
push 0x40bcc0
mov ecx, dword [eax]
push eax
mov dword [esp + 0x28], ebx
call dword [ecx]
cmp eax, ebx
jge 0x40600e
mov eax, dword [0x41950c]
push ebx
push str.Error
push str.Failed_in_QueryInterface_function.
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], 0xffffffff
cmp eax, ebx
je 0x4061c2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
pop esi
pop ebx
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret
mov dword [esp + 8], ebx
mov eax, dword [esp + 0xc]
lea ecx, [esp + 8]
push ecx
push 0x409f08
mov edx, dword [eax]
push eax
mov byte [esp + 0x28], 1
call dword [edx + 0x10]
cmp eax, ebx
jge 0x406072
mov edx, dword [0x41950c]
push ebx
push str.Error
push str.Failed_in_FindConnectionPoint_function.
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [esp + 8]
mov byte [esp + 0x1c], bl
cmp eax, ebx
je 0x406059
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], 0xffffffff
cmp eax, ebx
je 0x4061c2
jmp 0x4061bc
push 0x14
call sub.MFC42u.DLL_operatornew
add esp, 4
cmp eax, ebx
je 0x406099
mov dword [eax + 4], 1
mov dword [eax + 0xc], 0x409f08
mov dword [eax], 0x40bb54
mov dword [eax + 8], eax
jmp 0x40609b
xor eax, eax
mov ecx, dword [esp + 8]
lea esi, [esp + 0x10]
push esi
push eax
mov edx, dword [ecx]
push ecx
call dword [edx + 0x14]
cmp eax, ebx
jge 0x4060f1
mov eax, dword [0x41950c]
push ebx
push str.Error
push str.Failed_in_Advise_function.
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [esp + 8]
mov byte [esp + 0x1c], bl
cmp eax, ebx
je 0x4060d8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], 0xffffffff
cmp eax, ebx
je 0x4061c2
jmp 0x4061bc
mov esi, dword [sym.imp.USER32.dll_LoadCursorW]
push ebp
push edi
push 0x7f02
push ebx
call esi
mov edi, dword [sym.imp.USER32.dll_SetCursor]
push eax
call edi
push 0x412270
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [0x41955c]
push 0x412a90
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov eax, dword [0x41955c]
push 0x412270
push eax
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, dword [0x41955c]
mov edx, dword [0x419558]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xd4]
mov ebp, dword [sym.imp.USER32.dll_MessageBoxW]
test eax, eax
jge 0x406167
mov eax, dword [0x41950c]
push ebx
push str.Error
push str.Failed_to_back_up_the_database.
push eax
call ebp
push 0x7f00
push ebx
call esi
push eax
call edi
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
cmp eax, ebx
jge 0x406198
mov eax, dword [0x41950c]
push ebx
push str.Error
push str.Failed_in_Unadvise_function.
push eax
call ebp
mov eax, dword [esp + 0x10]
pop edi
cmp eax, ebx
mov byte [esp + 0x20], bl
pop ebp
je 0x4061ac
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], 0xffffffff
cmp eax, ebx
je 0x4061c2
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov ecx, dword [esp + 0x14]
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret