Function at 0x4481a3
Capabilities:
Check if file exists
Copy file
Delete file
Get common file path
Get file attributes
Move file
Set file attributes

Disassembly:
push 0xf1c
mov eax, 0x5b1ef4
call fcn.0058f792
mov dword [ebp - 0xf18], ecx
mov ebx, dword [ebp + 8]
push 0x5cff40
push str.CInstallAction::ReplaceKernelDrivers
push 5
mov dword [ebp - 0xef8], ebx
call fcn.00424dad
add esp, 0xc
lea eax, [ebp - 0x838]
mov esi, 0x105
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push esi
lea eax, [ebp - 0x62c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x448204
call fcn.0041ef8f
jmp 0x448c2b
call fcn.00474a71
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0xcc]
call fcn.00413cd8
xor edi, edi
mov dword [ebp - 0xf20], eax
mov esi, edi
mov dword [ebp - 0xefc], esi
test eax, eax
je 0x448c43
call fcn.00473f1b
push eax
lea ecx, [ebp - 0xeec]
call fcn.00406a4a
mov dword [ebp - 4], edi
call fcn.00473f1b
push eax
lea ecx, [ebp - 0xee0]
call fcn.00406a4a
mov byte [ebp - 4], 1
call fcn.00473f1b
push eax
lea ecx, [ebp - 0xee4]
call fcn.00406a4a
mov byte [ebp - 4], 2
call fcn.00473f1b
push eax
lea ecx, [ebp - 0xef4]
call fcn.00406a4a
xor eax, eax
mov dword [ebp - 0x83c], 7
mov dword [ebp - 0x840], edi
mov word [ebp - 0x850], ax
mov byte [ebp - 4], 4
call fcn.00473f1b
push eax
lea ecx, [ebp - 0xf00]
call fcn.00406a4a
mov byte [ebp - 4], 5
call fcn.00474a71
push esi
mov ecx, dword [eax + 4]
add ecx, 0xcc
call fcn.00413d42
push eax
lea ecx, [ebp - 0xef4]
call fcn.0041ed9c
call fcn.00474a71
push esi
mov ecx, dword [eax + 4]
add ecx, 0xcc
call fcn.00413dd9
push eax
lea ecx, [ebp - 0xee4]
call fcn.0041ed9c
lea eax, [ebp - 0x62c]
push eax
lea ecx, [ebp - 0xeec]
call fcn.0041ed9c
mov esi, dword [ebp - 0xee4]
lea ecx, [ebp - 0xeec]
push dword [esi - 0xc]
push esi
call fcn.0040907d
cmp word [ebx], di
jne 0x448320
mov eax, edi
jmp 0x448327
push ebx
call fcn.0058edd4
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x850]
call fcn.00404be0
mov edi, 0x5c4f0c
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x850]
call fcn.00404a83
mov edi, dword [ebp - 0xef4]
xor eax, eax
cmp word [edi], ax
je 0x448361
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x850]
call fcn.00404a83
push str..cab
call fcn.0058edd4
pop ecx
push eax
push str..cab
lea ecx, [ebp - 0x850]
call fcn.00404a83
xor eax, eax
push 0x20a
push eax
mov dword [ebp - 0xf04], eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0058e700
add esp, 0xc
lea eax, [ebp - 0x850]
cmp dword [ebp - 0x83c], 8
cmovae eax, dword [ebp - 0x850]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x448603
lea ecx, [ebp - 0x8b0]
call fcn.004392c9
lea ecx, [ebp - 0xedc]
call fcn.0042106a
lea eax, [ebp - 0x21c]
mov byte [ebp - 4], 7
push eax
call fcn.0043683a
pop ecx
test eax, eax
je 0x448bba
push 0xffffffffffffffff
xor ebx, ebx
lea eax, [ebp - 0x850]
push ebx
push eax
lea ecx, [ebp - 0x8b0]
call fcn.00404b26
cmp word [ebp - 0x21c], bx
jne 0x44841e
mov eax, ebx
jmp 0x44842b
lea eax, [ebp - 0x21c]
push eax
call fcn.0058edd4
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x898]
call fcn.00404be0
push esi
lea ecx, [ebp - 0xedc]
call fcn.00424733
test eax, eax
je 0x4484b1
lea eax, [ebp - 0x868]
push eax
lea ecx, [ebp - 0xedc]
call fcn.004213a7
push eax
lea ecx, [ebp - 0x880]
call fcn.00401e90
push ebx
push 1
lea ecx, [ebp - 0x868]
call fcn.00404970
lea eax, [ebp - 0x868]
push eax
lea ecx, [ebp - 0xedc]
call fcn.004213c7
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x880]
mov byte [ebp - 4], 8
call fcn.004049b6
push ebx
push 1
lea ecx, [ebp - 0x868]
mov byte [ebp - 4], 7
call fcn.00404970
cmp dword [ebp - 0x83c], 8
lea ecx, [ebp - 0x8b0]
push ecx
push 0x41c9ad
lea eax, [ebp - 0x850]
cmovae eax, dword [ebp - 0x850]
push ebx
push eax
call dword [sym.imp.SETUPAPI.dll_SetupIterateCabinetW]
test eax, eax
jne 0x448544
call fcn.0041ef8f
cmp dword [ebp - 0x83c], 8
lea eax, [ebp - 0x850]
mov edi, dword [ebp - 0xeec]
cmovae eax, dword [ebp - 0x850]
push edi
push eax
push str.Donot_extract__1.__2_cannot_copy_to_system._n
push str.CInstallAction::ReplaceKernelDrivers
push 2
call fcn.00424dad
add esp, 0x14
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
lea ecx, [ebp - 0xed8]
push ebx
push 1
call fcn.00404970
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], 5
call fcn.00439357
mov ebx, dword [ebp - 0xee0]
jmp 0x448adb
cmp dword [ebp - 0x83c], 8
lea eax, [ebp - 0x850]
cmovae eax, dword [ebp - 0x850]
push eax
push str.Extracting_of__1_s__is_succeeded._n
push str.CInstallAction::ReplaceKernelDrivers
push 4
call fcn.00424dad
add esp, 0x10
lea eax, [ebp - 0x21c]
lea ecx, [ebp - 0xee0]
push eax
call fcn.0041ed9c
mov edi, dword [esi - 0xc]
push 0x5c
push esi
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
jne 0x448595
or eax, 0xffffffff
jmp 0x448599
sub eax, esi
sar eax, 1
sub edi, eax
lea ecx, [ebp - 0xee4]
push edi
lea eax, [ebp - 0xf24]
push eax
call fcn.0041db85
mov eax, dword [eax]
lea ecx, [ebp - 0xee0]
mov byte [ebp - 4], 9
push dword [eax - 0xc]
push eax
call fcn.0040907d
mov ecx, dword [ebp - 0xf24]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
push ebx
push 1
lea ecx, [ebp - 0xed8]
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
call fcn.00404970
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], 5
call fcn.00439357
mov ebx, dword [ebp - 0xee0]
jmp 0x448859
push ebx
lea ecx, [ebp - 0xee0]
call fcn.0041ed9c
push 0x5c4f0c
lea ecx, [ebp - 0xee0]
call fcn.00409054
push dword [edi - 0xc]
lea ecx, [ebp - 0xee0]
push edi
call fcn.0040907d
mov ebx, dword [esi - 0xc]
push 0x5c
push esi
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
jne 0x448644
or eax, 0xffffffff
jmp 0x448648
sub eax, esi
sar eax, 1
sub ebx, eax
lea ecx, [ebp - 0xee4]
push ebx
lea eax, [ebp - 0xf1c]
push eax
call fcn.0041db85
mov eax, dword [eax]
lea ecx, [ebp - 0xee0]
mov byte [ebp - 4], 0xa
push dword [eax - 0xc]
push eax
call fcn.0040907d
mov ecx, dword [ebp - 0xf1c]
mov byte [ebp - 4], 5
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov ebx, dword [ebp - 0xee0]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x448859
call fcn.00473f1b
push eax
lea ecx, [ebp - 0xef0]
call fcn.00406a4a
push 0x101
lea eax, [ebp - 0x420]
mov byte [ebp - 4], 0xb
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push ebx
call fcn.00592b69
mov ebx, 0x101
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.00591dbe
add esp, 0x2c
cmp eax, 4
jae 0x44871b
push 0x2e
pop eax
cmp ax, word [ebp - 0x420]
je 0x448704
push 0x5c5de0
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.00591c0a
add esp, 0xc
push 0x5ca1f4
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.00591c0a
add esp, 0xc
jmp 0x44872e
push 0x5f
pop eax
mov word [ebp - 0x41a], ax
xor eax, eax
mov word [ebp - 0x418], ax
push dword [ebp - 0xef8]
lea ecx, [ebp - 0xee0]
call fcn.0041ed9c
push 0x5c4f0c
lea ecx, [ebp - 0xee0]
call fcn.00409054
push dword [edi - 0xc]
lea ecx, [ebp - 0xee0]
push edi
call fcn.0040907d
mov edi, dword [esi - 0xc]
push 0x5c
push esi
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
jne 0x448774
or eax, 0xffffffff
jmp 0x448778
sub eax, esi
sar eax, 1
sub edi, eax
lea ecx, [ebp - 0xee4]
push edi
lea eax, [ebp - 0xf14]
push eax
call fcn.0041db85
push eax
lea ecx, [ebp - 0xef0]
mov byte [ebp - 4], 0xc
call fcn.0040813e
mov ecx, dword [ebp - 0xf14]
mov byte [ebp - 4], 0xb
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov edi, dword [ebp - 0xef0]
push 0x2e
pop eax
push eax
push edi
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
jne 0x4487ca
or eax, 0xffffffff
jmp 0x4487ce
sub eax, edi
sar eax, 1
push eax
push 0
lea eax, [ebp - 0xf08]
push eax
lea ecx, [ebp - 0xef0]
call fcn.0041c928
mov eax, dword [eax]
lea ecx, [ebp - 0xee0]
mov byte [ebp - 4], 0xd
push dword [eax - 0xc]
push eax
call fcn.0040907d
mov ecx, dword [ebp - 0xf08]
mov byte [ebp - 4], 0xb
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0xee0]
call fcn.00409054
mov ebx, dword [ebp - 0xee0]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x44884d
push ebx
push str.ReplaceKernelDrivers_Use_LZxxxx_API_to___1_s__._n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
add esp, 0x10
mov dword [ebp - 0xf04], 1
lea ecx, [edi - 0x10]
mov byte [ebp - 4], 5
call fcn.0041d6f2
mov edi, dword [ebp - 0xeec]
push edi
push str.systemFile___1_n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
push ebx
push str.sourceFile___1_n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
add esp, 0x20
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x448ac6
call fcn.00473f1b
push eax
lea ecx, [ebp - 0xee8]
call fcn.00406a4a
lea eax, [ebp - 0x62c]
mov byte [ebp - 4], 0xe
push eax
lea ecx, [ebp - 0xee8]
call fcn.0041ed9c
push dword [esi - 0xc]
lea ecx, [ebp - 0xee8]
push esi
call fcn.0040907d
mov esi, dword [ebp - 0xee8]
push 0x2e
pop eax
push eax
push esi
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
je 0x44895f
sub eax, esi
sar eax, 1
js 0x44895f
push 0x2e
pop eax
push eax
push esi
call fcn.00591e9b
pop ecx
pop ecx
test eax, eax
jne 0x4488fd
or eax, 0xffffffff
jmp 0x448901
sub eax, esi
sar eax, 1
push eax
lea eax, [ebp - 0xf10]
push eax
lea ecx, [ebp - 0xee8]
call fcn.0041c872
push str..tmp
push eax
lea eax, [ebp - 0xf0c]
mov byte [ebp - 4], 0xf
push eax
call fcn.0043937f
add esp, 0xc
push eax
lea ecx, [ebp - 0xee8]
mov byte [ebp - 4], 0x10
call fcn.0040813e
mov ecx, dword [ebp - 0xf0c]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov ecx, dword [ebp - 0xf10]
mov byte [ebp - 4], 0xe
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
jmp 0x44896f
push str..tmp
lea ecx, [ebp - 0xee8]
call fcn.00409054
mov esi, dword [ebp - 0xee8]
push esi
push str.tempFile_1_s__n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
add esp, 0x10
cmp dword [ebp - 0xf04], 0
jne 0x4489b8
push 0
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x4489c3
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 5
call fcn.0041d6f2
mov esi, dword [ebp - 0xee4]
jmp 0x448adb
push esi
push ebx
call fcn.0043671f
pop ecx
pop ecx
jmp 0x44899d
push 0x80
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0
push esi
push edi
call fcn.0040b387
movzx eax, ax
add esp, 0xc
test ax, ax
jns 0x448aa5
push str.This_version_is_newer._n
push str.CInstallAction::ReplaceKernelDrivers
push 4
call fcn.00424dad
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x448a19
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0xfffffffe
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push ebx
push str.sourceFile_1_s__n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
push edi
push str.systemFile_1_s__n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
add esp, 0x20
push 5
push edi
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x448a85
push str.MoveFileEx_succeeded.__n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
push str.A_reboot_is_required._n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
mov eax, dword [ebp - 0xf18]
add esp, 0x18
or dword [eax + 0xb0], 1
jmp 0x4489a1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.MoveFileEx_failed.__0x_x__n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
add esp, 0x10
jmp 0x4489a1
push edi
push str._1_is_equal_or_lower._n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x4489a1
push edi
push str._1_donot_exist._n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
add esp, 0x10
lea eax, [ebp - 0x21c]
test eax, eax
je 0x448b4d
xor eax, eax
cmp ax, word [ebp - 0x21c]
je 0x448b4d
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x448b4d
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x448b4d
lea eax, [ebp - 0x21c]
push eax
call fcn.0040a5de
lea eax, [ebp - 0x21c]
push eax
push str.tempPath
push str.CInstallAction::ReplaceKernelDrivers
push 4
call fcn.00424d8f
push 0x20a
lea eax, [ebp - 0x21c]
push 0
push eax
call fcn.0058e700
add esp, 0x20
mov ecx, dword [ebp - 0xf00]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
push 0
push 1
lea ecx, [ebp - 0x850]
call fcn.00404970
mov ecx, dword [ebp - 0xef4]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
lea ecx, [esi - 0x10]
call fcn.0041d6f2
lea ecx, [ebx - 0x10]
call fcn.0041d6f2
or dword [ebp - 4], 0xffffffff
lea ecx, [edi - 0x10]
call fcn.0041d6f2
mov esi, dword [ebp - 0xefc]
inc esi
mov dword [ebp - 0xefc], esi
cmp esi, dword [ebp - 0xf20]
jae 0x448c43
mov ebx, dword [ebp - 0xef8]
xor edi, edi
jmp 0x44822f
push 0
push 1
lea ecx, [ebp - 0xed8]
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
call fcn.00404970
lea ecx, [ebp - 0x8b0]
call fcn.00439357
mov ecx, dword [ebp - 0xf00]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
push 0
push 1
lea ecx, [ebp - 0x850]
call fcn.00404970
lea ecx, [edi - 0x10]
call fcn.0041d6f2
lea ecx, [esi - 0x10]
call fcn.0041d6f2
mov ecx, dword [ebp - 0xee0]
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
mov ecx, dword [ebp - 0xeec]
or dword [ebp - 4], 0xffffffff
lea ecx, [ecx - 0x10]
call fcn.0041d6f2
push 0x5cff5c
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
add esp, 0xc
xor eax, eax
jmp 0x448c5a
push 0x5cff5c
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00424dad
xor eax, eax
add esp, 0xc
inc eax
call fcn.0058f741
ret 4