Function at 0x4d6160
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6490ad
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x6d3438]
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 0x4d61af
lea eax, [ebx + 0x31]
mov ecx, str.invalid_substitutor
jmp 0x4d63f4
push str.Source
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x20], 0
call fcn.0042a5a0
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004a4ed0
lea ecx, [ebp - 0x3c]
call fcn.0042f960
push str.DestDir
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x1c], 0
call fcn.0042a5a0
lea eax, [ebp - 0x3c]
mov ecx, esi
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004a4ed0
lea ecx, [ebp - 0x3c]
call fcn.0042f960
mov eax, dword [esi]
mov edi, dword [ebp - 0x20]
cmp edi, eax
je 0x4d63ea
mov esi, dword [ebp - 0x1c]
cmp esi, eax
je 0x4d63ea
push str.DeleteFile
lea ecx, [ebp - 0x3c]
mov byte [ebp - 0x11], 0
mov dword [ebp - 0x1c], 0
call fcn.0042a5a0
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004a4ed0
lea ecx, [ebp - 0x3c]
call fcn.0042f960
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ecx]
je 0x4d62aa
add eax, 0x28
mov ecx, ebx
push eax
mov dword [ebp - 0x18], eax
call fcn.004ae9e0
test al, al
jne 0x4d6278
mov eax, 0x43
mov ecx, str.Unable_to_substitute_DeleteFile_attribute
jmp 0x4d63f4
lea eax, [ebp - 0x11]
push eax
push dword [ebp - 0x18]
call fcn.004b4300
add esp, 8
test al, al
jne 0x4d62aa
push str.Failed_to_parse_DeleteFile_as_a_boolean___default_to_false
push 0x49
push str.XMLUpdater::v2::CExtractCabLocalCommand::Execute
push str.E:BT3f715c85_ff0b_44ed_ac13_dd63d3f5c42aWebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.004acee0
add esp, 0x14
mov byte [ebp - 0x11], 0
add edi, 0x28
mov ecx, ebx
push edi
call fcn.004ae9e0
test al, al
je 0x4d63de
add esi, 0x28
mov ecx, ebx
push esi
call fcn.004ae9e0
test al, al
je 0x4d63de
cmp dword [edi + 0x14], 8
mov eax, edi
mov bl, byte [ebp - 0x11]
jb 0x4d62dd
mov eax, dword [edi]
push eax
call fcn.004d4600
add esp, 4
test al, al
jne 0x4d6313
cmp dword [edi + 0x14], 8
jb 0x4d62f2
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:BT3f715c85_ff0b_44ed_ac13_dd63d3f5c42aWebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.004acee0
add esp, 0x18
jmp 0x4d640a
cmp dword [esi + 0x14], 8
mov eax, esi
mov dword [ebp - 0x18], 0
jb 0x4d6324
mov eax, dword [esi]
push 1
push eax
call fcn.004b4ba0
add esp, 8
mov eax, esi
cmp dword [esi + 0x14], 8
jb 0x4d6339
mov eax, dword [esi]
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.00499610
add esp, 8
test al, al
jne 0x4d636d
push dword [ebp - 0x18]
push str.Unable_to_create_destination_directory___d_
push 0x64
push str.XMLUpdater::v2::CExtractCabLocalCommand::ExecuteExtractCabLocalCommand
push str.E:BT3f715c85_ff0b_44ed_ac13_dd63d3f5c42aWebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.004acee0
add esp, 0x18
jmp 0x4d640a
mov ecx, dword [ebp - 0x24]
push esi
push edi
call fcn.004d6470
test al, al
jne 0x4d63a1
cmp dword [edi + 0x14], 8
jb 0x4d6383
mov edi, dword [edi]
push edi
push str.Failed_to_extract_cab___s_
push 0x6c
push str.XMLUpdater::v2::CExtractCabLocalCommand::ExecuteExtractCabLocalCommand
push str.E:BT3f715c85_ff0b_44ed_ac13_dd63d3f5c42aWebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.004acee0
add esp, 0x18
jmp 0x4d640a
test bl, bl
je 0x4d63da
cmp dword [edi + 0x14], 8
jb 0x4d63ad
mov edi, dword [edi]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x4d63da
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:BT3f715c85_ff0b_44ed_ac13_dd63d3f5c42aWebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.004acee0
add esp, 0x18
mov bl, 1
jmp 0x4d640c
mov eax, 0x50
mov ecx, str.Unable_to_substitute_variables_for_the_EXTRACT_CAB_LOCAL_command
jmp 0x4d63f4
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:BT3f715c85_ff0b_44ed_ac13_dd63d3f5c42aWebAdvisor_XmlUpdater_srcXmlUpdaterExtractCabLocalCommand.cpp
push 1
call fcn.004acee0
add esp, 0x14
xor bl, bl
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x4d6448
or eax, 0xffffffff
lock xadd dword [edi + 4], eax
jne 0x4d6448
mov eax, dword [edi]
mov esi, dword [eax]
mov ecx, esi
call dword [0x659730]
mov ecx, edi
call esi
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
jne 0x4d6448
mov edx, dword [edi]
mov esi, dword [edx + 4]
mov ecx, esi
call dword [0x659730]
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.00608185
mov esp, ebp
pop ebp
ret 0x10