Function at 0x51ab80
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59b24d
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 0x51abcf
lea eax, [ebx + 0x31]
mov ecx, str.invalid_substitutor
jmp 0x51ae14
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.0042f2e0
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.0042f2e0
lea ecx, [ebp - 0x3c]
call fcn.00424580
mov eax, dword [esi]
mov edi, dword [ebp - 0x20]
cmp edi, eax
je 0x51ae0a
mov esi, dword [ebp - 0x1c]
cmp esi, eax
je 0x51ae0a
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.0042f2e0
lea ecx, [ebp - 0x3c]
call fcn.00424580
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ecx]
je 0x51acca
add eax, 0x28
mov ecx, ebx
push eax
mov dword [ebp - 0x18], eax
call fcn.00502900
test al, al
jne 0x51ac98
mov eax, 0x43
mov ecx, str.Unable_to_substitute_DeleteFile_attribute
jmp 0x51ae14
lea eax, [ebp - 0x11]
push eax
push dword [ebp - 0x18]
call fcn.00507140
add esp, 8
test al, al
jne 0x51acca
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.00500de0
add esp, 0x14
mov byte [ebp - 0x11], 0
add edi, 0x28
mov ecx, ebx
push edi
call fcn.00502900
test al, al
je 0x51adfe
add esi, 0x28
mov ecx, ebx
push esi
call fcn.00502900
test al, al
je 0x51adfe
cmp dword [edi + 0x14], 8
mov eax, edi
mov bl, byte [ebp - 0x11]
jb 0x51acfd
mov eax, dword [edi]
push eax
call fcn.00519020
add esp, 4
test al, al
jne 0x51ad33
cmp dword [edi + 0x14], 8
jb 0x51ad12
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.00500de0
add esp, 0x18
jmp 0x51ae2a
cmp dword [esi + 0x14], 8
mov eax, esi
mov dword [ebp - 0x18], 0
jb 0x51ad44
mov eax, dword [esi]
push 1
push eax
call fcn.005079e0
add esp, 8
mov eax, esi
cmp dword [esi + 0x14], 8
jb 0x51ad59
mov eax, dword [esi]
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.004e7780
add esp, 8
test al, al
jne 0x51ad8d
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.00500de0
add esp, 0x18
jmp 0x51ae2a
mov ecx, dword [ebp - 0x24]
push esi
push edi
call fcn.0051ae90
test al, al
jne 0x51adc1
cmp dword [edi + 0x14], 8
jb 0x51ada3
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.00500de0
add esp, 0x18
jmp 0x51ae2a
test bl, bl
je 0x51adfa
cmp dword [edi + 0x14], 8
jb 0x51adcd
mov edi, dword [edi]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x51adfa
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.00500de0
add esp, 0x18
mov bl, 1
jmp 0x51ae2c
mov eax, 0x50
mov ecx, str.Unable_to_substitute_variables_for_the_EXTRACT_CAB_LOCAL_command
jmp 0x51ae14
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.00500de0
add esp, 0x14
xor bl, bl
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x51ae68
or eax, 0xffffffff
lock xadd dword [edi + 4], eax
jne 0x51ae68
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 0x51ae68
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.00553cca
mov esp, ebp
pop ebp
ret 0x10