Function at 0x51ac60
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59b71d
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x61094c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x24], ecx
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x18], esi
mov dword [ebp - 4], 0
test ebx, ebx
jne 0x51acaf
lea eax, [ebx + 0x31]
mov ecx, str.invalid_substitutor
jmp 0x51aef4
push str.Source
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x20], 0
call fcn.00424740
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0042f370
lea ecx, [ebp - 0x3c]
call fcn.00424600
push str.DestDir
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x1c], 0
call fcn.00424740
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042f370
lea ecx, [ebp - 0x3c]
call fcn.00424600
mov eax, dword [esi]
mov edi, dword [ebp - 0x20]
cmp edi, eax
je 0x51aeea
mov esi, dword [ebp - 0x1c]
cmp esi, eax
je 0x51aeea
push str.DeleteFile
lea ecx, [ebp - 0x3c]
mov byte [ebp - 0x11], 0
mov dword [ebp - 0x1c], 0
call fcn.00424740
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042f370
lea ecx, [ebp - 0x3c]
call fcn.00424600
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ecx]
je 0x51adaa
add eax, 0x28
mov ecx, ebx
push eax
mov dword [ebp - 0x18], eax
call fcn.00502a10
test al, al
jne 0x51ad78
mov eax, 0x43
mov ecx, str.Unable_to_substitute_DeleteFile_attribute
jmp 0x51aef4
lea eax, [ebp - 0x11]
push eax
push dword [ebp - 0x18]
call fcn.00507250
add esp, 8
test al, al
jne 0x51adaa
push str.Failed_to_parse_DeleteFile_as_a_boolean___default_to_false
push 0x49
push str.XMLUpdater::v2::CExtractCabLocalCommand::Execute
push str.E:BT71e4c9fa_1978_4386_a3da_49ea31fa22b7WebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.00500ef0
add esp, 0x14
mov byte [ebp - 0x11], 0
add edi, 0x28
mov ecx, ebx
push edi
call fcn.00502a10
test al, al
je 0x51aede
add esi, 0x28
mov ecx, ebx
push esi
call fcn.00502a10
test al, al
je 0x51aede
cmp dword [edi + 0x14], 8
mov eax, edi
mov bl, byte [ebp - 0x11]
jb 0x51addd
mov eax, dword [edi]
push eax
call fcn.00519100
add esp, 4
test al, al
jne 0x51ae13
cmp dword [edi + 0x14], 8
jb 0x51adf2
mov edi, dword [edi]
push edi
push str.Unable_to_verify_signature_for_file:__s
push 0x5c
push str.XMLUpdater::v2::CExtractCabLocalCommand::ExecuteExtractCabLocalCommand
push str.E:BT71e4c9fa_1978_4386_a3da_49ea31fa22b7WebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.00500ef0
add esp, 0x18
jmp 0x51af0a
cmp dword [esi + 0x14], 8
mov eax, esi
mov dword [ebp - 0x18], 0
jb 0x51ae24
mov eax, dword [esi]
push 1
push eax
call fcn.00507af0
add esp, 8
mov eax, esi
cmp dword [esi + 0x14], 8
jb 0x51ae39
mov eax, dword [esi]
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.004e7890
add esp, 8
test al, al
jne 0x51ae6d
push dword [ebp - 0x18]
push str.Unable_to_create_destination_directory___d_
push 0x64
push str.XMLUpdater::v2::CExtractCabLocalCommand::ExecuteExtractCabLocalCommand
push str.E:BT71e4c9fa_1978_4386_a3da_49ea31fa22b7WebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.00500ef0
add esp, 0x18
jmp 0x51af0a
mov ecx, dword [ebp - 0x24]
push esi
push edi
call fcn.0051af70
test al, al
jne 0x51aea1
cmp dword [edi + 0x14], 8
jb 0x51ae83
mov edi, dword [edi]
push edi
push str.Failed_to_extract_cab___s_
push 0x6c
push str.XMLUpdater::v2::CExtractCabLocalCommand::ExecuteExtractCabLocalCommand
push str.E:BT71e4c9fa_1978_4386_a3da_49ea31fa22b7WebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.00500ef0
add esp, 0x18
jmp 0x51af0a
test bl, bl
je 0x51aeda
cmp dword [edi + 0x14], 8
jb 0x51aead
mov edi, dword [edi]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x51aeda
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Failed_to_delete_src_cab___d_
push 0x74
push str.XMLUpdater::v2::CExtractCabLocalCommand::ExecuteExtractCabLocalCommand
push str.E:BT71e4c9fa_1978_4386_a3da_49ea31fa22b7WebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.00500ef0
add esp, 0x18
mov bl, 1
jmp 0x51af0c
mov eax, 0x50
mov ecx, str.Unable_to_substitute_variables_for_the_EXTRACT_CAB_LOCAL_command
jmp 0x51aef4
mov eax, 0x39
mov ecx, str.Unable_to_read_Source_and_or_DestDir_attribute_of_EXTRACT_CAB_LOCAL_command
push ecx
push eax
push str.XMLUpdater::v2::CExtractCabLocalCommand::Execute
push str.E:BT71e4c9fa_1978_4386_a3da_49ea31fa22b7WebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.00500ef0
add esp, 0x14
xor bl, bl
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x51af48
or eax, 0xffffffff
lock xadd dword [edi + 4], eax
jne 0x51af48
mov eax, dword [edi]
mov esi, dword [eax]
mov ecx, esi
call dword [0x5a0478]
mov ecx, edi
call esi
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
jne 0x51af48
mov edx, dword [edi]
mov esi, dword [edx + 4]
mov ecx, esi
call dword [0x5a0478]
mov ecx, edi
call esi
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00553daa
mov esp, ebp
pop ebp
ret 0x10