Function at 0x402fa0
Capabilities:
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x61c
mov eax, dword [0x43d00c]
mov esi, edx
mov edi, ecx
lea ebx, [ebp - 0x218]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ecx
push str._s.moz_backup
push 0x104
push ebx
call fcn.004043f0
add esp, 0x10
lea eax, [ebp - 0x420]
push esi
push str._s.moz_backup
push 0x104
push eax
call fcn.004043f0
add esp, 0x10
push 0
push ebx
call fcn.0041ce70
add esp, 8
cmp dword [ebp + 8], 0
je 0x403046
test eax, eax
je 0x403165
mov eax, dword [0x43fc58]
mov ecx, dword [0x43db2c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4031cd
lea eax, [ebp - 0x420]
push eax
push str.backup_restore:_backup_file_doesnt_exist:__S
push 0x43f844
call fcn.0040e940
add esp, 0xc
jmp 0x403177
test eax, eax
jne 0x403177
push 0x180
push ebx
call fcn.0041d103
add esp, 8
push ebx
call fcn.0041d8b6
add esp, 4
test eax, eax
je 0x403177
mov edi, eax
mov eax, dword [0x43fc58]
mov ecx, dword [0x43db2c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403211
call fcn.00419e3b
push dword [eax]
push edi
push ebx
push str.ensure_remove:_failed_to_remove_file:__S__rv:__d__err:__d
push 0x43f844
call fcn.0040e940
add esp, 0x14
cmp byte [0x43ec04], 0
jne 0x403177
cmp byte [0x43f636], 0
jne 0x403177
mov eax, dword [0x43fc58]
mov ecx, dword [0x43db2c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403255
lea ebx, [ebp - 0x420]
push ebx
push str.backup_discard:_unable_to_remove:__S
push 0x43f844
call fcn.0040e940
add esp, 0xc
lea edi, [ebp - 0x628]
push edi
push 0x4378ce
push 0x43f63c
call fcn.0040f2f0
add esp, 0xc
lea ecx, [ebp - 0x218]
mov edx, edi
push 0
call fcn.0040a5b0
add esp, 4
test eax, eax
je 0x40318c
mov eax, dword [0x43fc58]
mov ecx, dword [0x43db2c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403299
push esi
push ebx
push str.backup_discard:_failed_to_rename_file:_S__dst:_S
push 0x43f844
call fcn.0040e940
add esp, 0x10
jmp 0x403177
lea ecx, [ebp - 0x218]
mov edx, edi
push 0
call fcn.0040a5b0
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00412bfe
add esp, 0x61c
pop esi
pop edi
pop ebx
pop ebp
ret
push 4
push 0
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov edi, eax
mov eax, dword [0x43fc58]
mov ecx, dword [0x43db2c]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4032dd
test edi, edi
je 0x403324
push esi
push str.backup_discard:_file_renamed_and_will_be_removed_on_OS_reboot:__S
jmp 0x403034
push 0x43fc58
call fcn.0041244a
add esp, 4
mov eax, dword [0x43fc58]
cmp eax, 0xffffffff
jne 0x403028
mov dword [0x43f844], 0
push 0x40a550
call fcn.004126b0
add esp, 4
push 0x43fc58
call fcn.0041249c
add esp, 4
jmp 0x403028
push 0x43fc58
call fcn.0041244a
add esp, 4
mov eax, dword [0x43fc58]
cmp eax, 0xffffffff
jne 0x403090
mov dword [0x43f844], 0
push 0x40a550
call fcn.004126b0
add esp, 4
push 0x43fc58
call fcn.0041249c
add esp, 4
jmp 0x403090
push 0x43fc58
call fcn.0041244a
add esp, 4
mov eax, dword [0x43fc58]
cmp eax, 0xffffffff
jne 0x4030e6
mov dword [0x43f844], 0
push 0x40a550
call fcn.004126b0
add esp, 4
push 0x43fc58
call fcn.0041249c
add esp, 4
jmp 0x4030e6
push 0x43fc58
call fcn.0041244a
add esp, 4
mov eax, dword [0x43fc58]
cmp eax, 0xffffffff
jne 0x40314f
mov dword [0x43f844], 0
push 0x40a550
call fcn.004126b0
add esp, 4
push 0x43fc58
call fcn.0041249c
add esp, 4
jmp 0x40314f
push 0x43fc58
call fcn.0041244a
add esp, 4
mov eax, dword [0x43fc58]
cmp eax, 0xffffffff
jne 0x4031ba
mov dword [0x43f844], 0
push 0x40a550
call fcn.004126b0
add esp, 4
push 0x43fc58
call fcn.0041249c
add esp, 4
test edi, edi
jne 0x4031c2
push esi
push str.backup_discard:_failed_to_schedule_OS_reboot_removal_of_file:__S
jmp 0x403034