Function at 0x4029e0
Capabilities:
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x620
mov eax, dword [0x43d00c]
mov esi, edx
mov edi, ecx
xor eax, ebp
cmp dword [ebp + 8], 0
mov dword [ebp - 0x10], eax
je 0x402a86
lea ebx, [ebp - 0x62a]
push edi
push str._s.moz_backup
push 0x104
push ebx
call fcn.00403ef0
add esp, 0x10
lea eax, [ebp - 0x218]
push esi
mov esi, eax
push str._s.moz_backup
push 0x104
push eax
call fcn.00403ef0
add esp, 0x10
push 0
push ebx
call fcn.0041d2ac
add esp, 8
test eax, eax
je 0x402be4
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43fa9c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x402c4f
push esi
push str.backup_restore:_backup_file_doesnt_exist:__S
push 0x43f890
call fcn.00410af0
add esp, 0xc
jmp 0x402bf6
lea ebx, [ebp - 0x218]
push edi
push str._s.moz_backup
push 0x104
push ebx
call fcn.00403ef0
add esp, 0x10
lea eax, [ebp - 0x420]
push esi
push str._s.moz_backup
push 0x104
push eax
call fcn.00403ef0
add esp, 0x10
push 0
push ebx
call fcn.0041d2ac
add esp, 8
test eax, eax
jne 0x402bf6
push 0x180
push ebx
call fcn.0041d53f
add esp, 8
push ebx
call fcn.0041dcf2
add esp, 4
test eax, eax
je 0x402bf6
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov edi, eax
mov eax, dword [0x43fa9c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x402c92
call fcn.0041a26c
push dword [eax]
push edi
push ebx
push str.ensure_remove:_failed_to_remove_file:__S__rv:__d__err:__d
push 0x43f890
call fcn.00410af0
add esp, 0x14
cmp byte [0x43ee58], 0
jne 0x402bf6
cmp byte [0x43f685], 0
jne 0x402bf6
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43fa9c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x402cd5
lea ebx, [ebp - 0x420]
push ebx
push str.backup_discard:_unable_to_remove:__S
push 0x43f890
call fcn.00410af0
add esp, 0xc
lea edi, [ebp - 0x62a]
push edi
push 0x437b6a
push 0x43f686
call fcn.00411cd0
add esp, 0xc
lea ecx, [ebp - 0x218]
mov edx, edi
push 0
call fcn.0040a040
add esp, 4
test eax, eax
je 0x402c0b
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43fa9c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x402d18
push esi
push ebx
push str.backup_discard:_failed_to_rename_file:_S__dst:_S
push 0x43f890
call fcn.00410af0
add esp, 0x10
jmp 0x402bf6
lea ecx, [ebp - 0x62a]
mov edx, edi
push 0
call fcn.0040a040
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00412fa1
add esp, 0x620
pop esi
pop edi
pop ebx
pop ebp
ret
push 4
push 0
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov edi, eax
mov eax, dword [0x43fa9c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x402d5b
test edi, edi
mov eax, str.backup_discard:_failed_to_schedule_OS_reboot_removal_of_file:__S
mov ecx, str.backup_discard:_file_renamed_and_will_be_removed_on_OS_reboot:__S
cmove ecx, eax
push esi
push ecx
jmp 0x402a74
push 0x43fa9c
call fcn.004127a7
add esp, 4
cmp dword [0x43fa9c], 0xffffffff
jne 0x402a6e
mov dword [0x43f890], 0
push 0x40a010
call fcn.00412a1c
add esp, 4
push 0x43fa9c
call fcn.004127f9
add esp, 4
jmp 0x402a6e
push 0x43fa9c
call fcn.004127a7
add esp, 4
cmp dword [0x43fa9c], 0xffffffff
jne 0x402b0f
mov dword [0x43f890], 0
push 0x40a010
call fcn.00412a1c
add esp, 4
push 0x43fa9c
call fcn.004127f9
add esp, 4
jmp 0x402b0f
push 0x43fa9c
call fcn.004127a7
add esp, 4
cmp dword [0x43fa9c], 0xffffffff
jne 0x402b65
mov dword [0x43f890], 0
push 0x40a010
call fcn.00412a1c
add esp, 4
push 0x43fa9c
call fcn.004127f9
add esp, 4
jmp 0x402b65
push 0x43fa9c
call fcn.004127a7
add esp, 4
cmp dword [0x43fa9c], 0xffffffff
jne 0x402bce
mov dword [0x43f890], 0
push 0x40a010
call fcn.00412a1c
add esp, 4
push 0x43fa9c
call fcn.004127f9
add esp, 4
jmp 0x402bce
push 0x43fa9c
call fcn.004127a7
add esp, 4
cmp dword [0x43fa9c], 0xffffffff
jne 0x402c39
mov dword [0x43f890], 0
push 0x40a010
call fcn.00412a1c
add esp, 4
push 0x43fa9c
call fcn.004127f9
add esp, 4
jmp 0x402c39