Function at 0x420d15
Capabilities:
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 0xc]
mov edx, ecx
test ecx, ecx
je 0x420d49
cmp dword [0x4c12e0], 0
je 0x420d49
cmp dword [0x4c3630], 0
je 0x420d49
mov eax, dword [ecx]
push str.In_CInfFile::_MoveFileEx__
push ecx
call dword [eax + 0x10]
mov edx, dword [esi + 0xc]
pop ecx
pop ecx
mov edi, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 4], eax
test edx, edx
je 0x420d77
cmp dword [0x4c12e0], eax
je 0x420d77
cmp dword [0x4c3630], eax
je 0x420d77
mov eax, dword [edx]
push edi
push dword [ebp + 8]
push str...Trying_to_move_file__s_to__s
push edx
call dword [eax + 0x10]
add esp, 0x10
test edi, edi
je 0x420ea2
cmp byte [edi], 0
je 0x420ea2
and dword [ebp + 0xc], 0
push edi
call fcn.00444f03
xor ebx, ebx
inc ebx
pop ecx
cmp eax, ebx
jne 0x420e96
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x420e96
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0xc]
mov edx, eax
mov dword [ebp + 0xc], edx
test ecx, ecx
je 0x420dd7
cmp dword [0x4c12e0], 0
je 0x420dd7
mov eax, dword [ecx]
push edx
push str...Win32_DeleteFile_fails__Error:__d_._Try_DH_option
push ecx
call dword [eax + 0x18]
add esp, 0xc
push ebx
push edi
push dword [ebp + 8]
call fcn.0044357c
mov ecx, dword [esi + 0xc]
add esp, 0xc
test ecx, ecx
je 0x420e2e
test eax, eax
je 0x420e10
cmp dword [0x4c12e0], 0
je 0x420e2e
cmp dword [0x4c3630], 0
je 0x420e2e
mov eax, dword [ecx]
push str...DH_MoveFile_success
push ecx
call dword [eax + 0x10]
pop ecx
pop ecx
jmp 0x420e2e
cmp dword [0x4c12e0], 0
je 0x420e2e
push dword [ebp + 8]
mov eax, dword [ecx]
push dword [ebp + 0xc]
push edi
push str...DeleteFile___failed_for_destination_file__s__Error:__d___and_then_MoveFileEx___failed_when_trying_to_remove_original_file__s_on_reboot.
push ecx
call dword [eax + 0x14]
add esp, 0x14
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x420e50
cmp dword [0x4c12e0], 0
je 0x420e50
push dword [ebp + 0xc]
mov eax, dword [ecx]
push edi
push str.REBOOT_REQUIRED:_triggered_by_failure_to_delete_file___s__when_trying_to_replace_it__Error:__d_
push ecx
call dword [eax + 0x14]
add esp, 0x10
push ebx
mov ecx, esi
call fcn.00426f44
cmp dword [ebp + 0x10], 0
jne 0x420f94
mov ebx, dword [ebp - 4]
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x420e8d
cmp dword [0x4c12e0], 0
je 0x420e8d
cmp dword [0x4c3630], 0
je 0x420e8d
mov eax, dword [ecx]
push ebx
push str.CInfFile::_MoveFileEx___returns__d
push ecx
call dword [eax + 0x10]
add esp, 0xc
pop edi
pop esi
mov eax, ebx
pop ebx
leave
ret 0xc
push edi
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_MoveFileA]
jmp 0x420ed5
xor ebx, ebx
inc ebx
cmp dword [ebp + 0x10], 0
mov dword [ebp + 0xc], ebx
je 0x420ecc
push 0
push 0
push dword [ebp + 8]
mov ecx, esi
call fcn.00420165
mov dword [ebp - 4], eax
test eax, eax
je 0x420ecc
push 0xe
mov ecx, esi
call fcn.00426f44
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x420fb6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [esi + 0xc]
test edx, edx
je 0x420f02
cmp dword [0x4c12e0], 0
je 0x420f02
mov ecx, dword [edx]
push eax
push str...Win32_MoveFile_fails__Error:__d_._Try_DH_option
push edx
call dword [ecx + 0x18]
add esp, 0xc
push ebx
push edi
push dword [ebp + 8]
call fcn.0044357c
mov ecx, dword [esi + 0xc]
add esp, 0xc
test ecx, ecx
je 0x420f56
test eax, eax
je 0x420f3b
cmp dword [0x4c12e0], 0
je 0x420f56
cmp dword [0x4c3630], 0
je 0x420f56
mov eax, dword [ecx]
push str...DH_MoveFile_success
push ecx
call dword [eax + 0x10]
pop ecx
pop ecx
jmp 0x420f56
cmp dword [0x4c12e0], 0
je 0x420f56
mov eax, dword [ecx]
push edi
push dword [ebp + 8]
push str...MoveFileEx___failed___source:__s__destination:__s
push ecx
call dword [eax + 0x14]
add esp, 0x10
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x420f78
cmp dword [0x4c12e0], 0
je 0x420f78
mov eax, dword [ecx]
push edi
push dword [ebp + 8]
push str.REBOOT_REQUIRED:_triggered_by_trying_to_move_file___source:__s__destination:__s
push ecx
call dword [eax + 0x14]
add esp, 0x10
push ebx
mov ecx, esi
call fcn.00426f44
cmp dword [ebp + 0x10], 0
je 0x420e62
cmp dword [ebp + 0xc], 0
jne 0x420e62
push ebx
push ebx
push edi
mov ecx, esi
call fcn.00420165
mov ebx, eax
test ebx, ebx
je 0x420e65
push 0xe
mov ecx, esi
call fcn.00426f44
jmp 0x420e65
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x420fdc
cmp dword [0x4c12e0], 0
je 0x420fdc
cmp dword [0x4c3630], 0
je 0x420fdc
mov eax, dword [ecx]
push str...Successfully_moved_file
push ecx
call dword [eax + 0x10]
pop ecx
pop ecx
cmp dword [ebp + 0x10], 0
je 0x420e62
cmp dword [ebp + 0xc], 0
jne 0x420e62
push 0
jmp 0x420f95