Function at 0x51abe0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59b69d
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 0x51ac2f
lea eax, [ebx + 0x31]
mov ecx, str.invalid_substitutor
jmp 0x51ae74
push str.Source
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x20], 0
call fcn.004246c0
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0042f300
lea ecx, [ebp - 0x3c]
call fcn.00424580
push str.DestDir
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x1c], 0
call fcn.004246c0
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042f300
lea ecx, [ebp - 0x3c]
call fcn.00424580
mov eax, dword [esi]
mov edi, dword [ebp - 0x20]
cmp edi, eax
je 0x51ae6a
mov esi, dword [ebp - 0x1c]
cmp esi, eax
je 0x51ae6a
push str.DeleteFile
lea ecx, [ebp - 0x3c]
mov byte [ebp - 0x11], 0
mov dword [ebp - 0x1c], 0
call fcn.004246c0
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.0042f300
lea ecx, [ebp - 0x3c]
call fcn.00424580
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ecx]
je 0x51ad2a
add eax, 0x28
mov ecx, ebx
push eax
mov dword [ebp - 0x18], eax
call fcn.00502980
test al, al
jne 0x51acf8
mov eax, 0x43
mov ecx, str.Unable_to_substitute_DeleteFile_attribute
jmp 0x51ae74
lea eax, [ebp - 0x11]
push eax
push dword [ebp - 0x18]
call fcn.005071d0
add esp, 8
test al, al
jne 0x51ad2a
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.00500e60
add esp, 0x14
mov byte [ebp - 0x11], 0
add edi, 0x28
mov ecx, ebx
push edi
call fcn.00502980
test al, al
je 0x51ae5e
add esi, 0x28
mov ecx, ebx
push esi
call fcn.00502980
test al, al
je 0x51ae5e
cmp dword [edi + 0x14], 8
mov eax, edi
mov bl, byte [ebp - 0x11]
jb 0x51ad5d
mov eax, dword [edi]
push eax
call fcn.00519080
add esp, 4
test al, al
jne 0x51ad93
cmp dword [edi + 0x14], 8
jb 0x51ad72
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.00500e60
add esp, 0x18
jmp 0x51ae8a
cmp dword [esi + 0x14], 8
mov eax, esi
mov dword [ebp - 0x18], 0
jb 0x51ada4
mov eax, dword [esi]
push 1
push eax
call fcn.00507a70
add esp, 8
mov eax, esi
cmp dword [esi + 0x14], 8
jb 0x51adb9
mov eax, dword [esi]
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.004e7800
add esp, 8
test al, al
jne 0x51aded
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.00500e60
add esp, 0x18
jmp 0x51ae8a
mov ecx, dword [ebp - 0x24]
push esi
push edi
call fcn.0051aef0
test al, al
jne 0x51ae21
cmp dword [edi + 0x14], 8
jb 0x51ae03
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.00500e60
add esp, 0x18
jmp 0x51ae8a
test bl, bl
je 0x51ae5a
cmp dword [edi + 0x14], 8
jb 0x51ae2d
mov edi, dword [edi]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x51ae5a
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.00500e60
add esp, 0x18
mov bl, 1
jmp 0x51ae8c
mov eax, 0x50
mov ecx, str.Unable_to_substitute_variables_for_the_EXTRACT_CAB_LOCAL_command
jmp 0x51ae74
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.00500e60
add esp, 0x14
xor bl, bl
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x51aec8
or eax, 0xffffffff
lock xadd dword [edi + 4], eax
jne 0x51aec8
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 0x51aec8
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.00553d2a
mov esp, ebp
pop ebp
ret 0x10