Function at 0x447401
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, 0x5aaf07
call fcn.00588aeb
mov dword [ebp - 0xf18], ecx
mov ebx, dword [ebp + 8]
push 0x5c9e94
push str.CInstallAction::ReplaceKernelDrivers
push 5
mov dword [ebp - 0xef8], ebx
call fcn.00423f75
add esp, 0xc
mov esi, 0x105
push esi
lea eax, [ebp - 0x838]
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 0x447462
call fcn.0041dfc9
jmp 0x447e89
call fcn.00473832
mov ecx, dword [eax + 4]
lea ecx, [ecx + 0xcc]
call fcn.00412d3a
xor edi, edi
mov esi, edi
mov dword [ebp - 0xf20], eax
mov dword [ebp - 0xefc], esi
test eax, eax
je 0x447ea1
call fcn.00472cf7
push eax
lea ecx, [ebp - 0xeec]
call fcn.00405b90
mov dword [ebp - 4], edi
call fcn.00472cf7
push eax
lea ecx, [ebp - 0xee0]
call fcn.00405b90
mov byte [ebp - 4], 1
call fcn.00472cf7
push eax
lea ecx, [ebp - 0xee4]
call fcn.00405b90
mov byte [ebp - 4], 2
call fcn.00472cf7
push eax
lea ecx, [ebp - 0xef4]
call fcn.00405b90
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.00472cf7
push eax
lea ecx, [ebp - 0xf00]
call fcn.00405b90
mov byte [ebp - 4], 5
call fcn.00473832
mov ecx, dword [eax + 4]
push esi
add ecx, 0xcc
call fcn.00412da4
push eax
lea ecx, [ebp - 0xef4]
call fcn.0041ddd6
call fcn.00473832
mov ecx, dword [eax + 4]
push esi
add ecx, 0xcc
call fcn.00412e3b
push eax
lea ecx, [ebp - 0xee4]
call fcn.0041ddd6
lea eax, [ebp - 0x62c]
push eax
lea ecx, [ebp - 0xeec]
call fcn.0041ddd6
mov esi, dword [ebp - 0xee4]
lea ecx, [ebp - 0xeec]
push dword [esi - 0xc]
push esi
call fcn.0040815c
cmp word [ebx], di
jne 0x44757e
mov eax, edi
jmp 0x447585
push ebx
call fcn.00588144
pop ecx
push eax
push ebx
lea ecx, [ebp - 0x850]
call fcn.00403cef
mov edi, 0x5bef0c
push edi
call fcn.00588144
pop ecx
push eax
push edi
lea ecx, [ebp - 0x850]
call fcn.00403b92
mov edi, dword [ebp - 0xef4]
xor eax, eax
cmp word [edi], ax
je 0x4475bf
push edi
call fcn.00588144
pop ecx
push eax
push edi
lea ecx, [ebp - 0x850]
call fcn.00403b92
push str..cab
call fcn.00588144
pop ecx
push eax
push str..cab
lea ecx, [ebp - 0x850]
call fcn.00403b92
xor eax, eax
push 0x20a
push eax
mov dword [ebp - 0xf04], eax
lea eax, [ebp - 0x21c]
push eax
call fcn.00587a70
add esp, 0xc
cmp dword [ebp - 0x83c], 8
lea eax, [ebp - 0x850]
cmovae eax, dword [ebp - 0x850]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x447861
lea ecx, [ebp - 0x8b0]
call fcn.004384b1
lea ecx, [ebp - 0xedc]
call fcn.00420211
lea eax, [ebp - 0x21c]
push eax
mov byte [ebp - 4], 7
call fcn.004359f4
pop ecx
test eax, eax
je 0x447e18
push 0xffffffffffffffff
xor ebx, ebx
push ebx
lea eax, [ebp - 0x850]
push eax
lea ecx, [ebp - 0x8b0]
call fcn.00403c35
cmp word [ebp - 0x21c], bx
jne 0x44767c
mov eax, ebx
jmp 0x447689
lea eax, [ebp - 0x21c]
push eax
call fcn.00588144
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x898]
call fcn.00403cef
push esi
lea ecx, [ebp - 0xedc]
call fcn.0042391c
test eax, eax
je 0x44770f
lea eax, [ebp - 0x868]
push eax
lea ecx, [ebp - 0xedc]
call fcn.004205a1
push eax
lea ecx, [ebp - 0x880]
call fcn.00401322
push ebx
push 1
lea ecx, [ebp - 0x868]
call fcn.00403a7f
lea eax, [ebp - 0x868]
push eax
lea ecx, [ebp - 0xedc]
call fcn.004205bf
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x880]
mov byte [ebp - 4], 8
call fcn.00403ac5
push ebx
push 1
lea ecx, [ebp - 0x868]
mov byte [ebp - 4], 7
call fcn.00403a7f
cmp dword [ebp - 0x83c], 8
lea ecx, [ebp - 0x8b0]
push ecx
push 0x41b9f1
lea eax, [ebp - 0x850]
cmovae eax, dword [ebp - 0x850]
push ebx
push eax
call dword [sym.imp.SETUPAPI.dll_SetupIterateCabinetW]
test eax, eax
jne 0x4477a2
call fcn.0041dfc9
cmp dword [ebp - 0x83c], 8
mov edi, dword [ebp - 0xeec]
push edi
lea eax, [ebp - 0x850]
cmovae eax, dword [ebp - 0x850]
push eax
push str.Donot_extract__1.__2_cannot_copy_to_system._n
push str.CInstallAction::ReplaceKernelDrivers
push 2
call fcn.00423f75
add esp, 0x14
lea ecx, [ebp - 0xed8]
push ebx
push 1
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
call fcn.00403a7f
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], 5
call fcn.0045d256
mov ebx, dword [ebp - 0xee0]
jmp 0x447d39
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.00423f75
add esp, 0x10
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0xee0]
call fcn.0041ddd6
mov edi, dword [esi - 0xc]
push 0x5c
push esi
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
jne 0x4477f3
or eax, 0xffffffff
jmp 0x4477f7
sub eax, esi
sar eax, 1
sub edi, eax
push edi
lea eax, [ebp - 0xf24]
push eax
lea ecx, [ebp - 0xee4]
call fcn.0041cbb9
mov eax, dword [eax]
lea ecx, [ebp - 0xee0]
push dword [eax - 0xc]
mov byte [ebp - 4], 9
push eax
call fcn.0040815c
mov ecx, dword [ebp - 0xf24]
lea ecx, [ecx - 0x10]
call fcn.0041c730
push ebx
push 1
lea ecx, [ebp - 0xed8]
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
call fcn.00403a7f
lea ecx, [ebp - 0x8b0]
mov byte [ebp - 4], 5
call fcn.0045d256
mov ebx, dword [ebp - 0xee0]
jmp 0x447ab7
push ebx
lea ecx, [ebp - 0xee0]
call fcn.0041ddd6
push 0x5bef0c
lea ecx, [ebp - 0xee0]
call fcn.00408133
push dword [edi - 0xc]
lea ecx, [ebp - 0xee0]
push edi
call fcn.0040815c
mov ebx, dword [esi - 0xc]
push 0x5c
push esi
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
jne 0x4478a2
or eax, 0xffffffff
jmp 0x4478a6
sub eax, esi
sar eax, 1
sub ebx, eax
push ebx
lea eax, [ebp - 0xf1c]
push eax
lea ecx, [ebp - 0xee4]
call fcn.0041cbb9
mov eax, dword [eax]
lea ecx, [ebp - 0xee0]
push dword [eax - 0xc]
mov byte [ebp - 4], 0xa
push eax
call fcn.0040815c
mov ecx, dword [ebp - 0xf1c]
mov byte [ebp - 4], 5
lea ecx, [ecx - 0x10]
call fcn.0041c730
mov ebx, dword [ebp - 0xee0]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x447ab7
call fcn.00472cf7
push eax
lea ecx, [ebp - 0xef0]
call fcn.00405b90
push 0x101
lea eax, [ebp - 0x420]
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push ebx
mov byte [ebp - 4], 0xb
call fcn.0058bead
mov ebx, 0x101
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.0058b10d
add esp, 0x2c
cmp eax, 4
jae 0x447979
push 0x2e
pop eax
cmp ax, word [ebp - 0x420]
je 0x447962
push 0x5bfcec
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.0058af59
add esp, 0xc
push 0x5c4104
lea eax, [ebp - 0x420]
push ebx
push eax
call fcn.0058af59
add esp, 0xc
jmp 0x44798c
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.0041ddd6
push 0x5bef0c
lea ecx, [ebp - 0xee0]
call fcn.00408133
push dword [edi - 0xc]
lea ecx, [ebp - 0xee0]
push edi
call fcn.0040815c
mov edi, dword [esi - 0xc]
push 0x5c
push esi
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
jne 0x4479d2
or eax, 0xffffffff
jmp 0x4479d6
sub eax, esi
sar eax, 1
sub edi, eax
push edi
lea eax, [ebp - 0xf14]
push eax
lea ecx, [ebp - 0xee4]
call fcn.0041cbb9
push eax
lea ecx, [ebp - 0xef0]
mov byte [ebp - 4], 0xc
call fcn.0040726a
mov ecx, dword [ebp - 0xf14]
mov byte [ebp - 4], 0xb
lea ecx, [ecx - 0x10]
call fcn.0041c730
mov edi, dword [ebp - 0xef0]
push 0x2e
pop eax
push eax
push edi
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
jne 0x447a28
or eax, 0xffffffff
jmp 0x447a2c
sub eax, edi
sar eax, 1
push eax
push 0
lea eax, [ebp - 0xf08]
push eax
lea ecx, [ebp - 0xef0]
call fcn.0041b96e
mov eax, dword [eax]
lea ecx, [ebp - 0xee0]
push dword [eax - 0xc]
mov byte [ebp - 4], 0xd
push eax
call fcn.0040815c
mov ecx, dword [ebp - 0xf08]
mov byte [ebp - 4], 0xb
lea ecx, [ecx - 0x10]
call fcn.0041c730
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0xee0]
call fcn.00408133
mov ebx, dword [ebp - 0xee0]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x447aab
push ebx
push str.ReplaceKernelDrivers_Use_LZxxxx_API_to___1_s__._n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
add esp, 0x10
mov dword [ebp - 0xf04], 1
lea ecx, [edi - 0x10]
mov byte [ebp - 4], 5
call fcn.0041c730
mov edi, dword [ebp - 0xeec]
push edi
push str.systemFile___1_n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
push ebx
push str.sourceFile___1_n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
add esp, 0x20
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x447d24
call fcn.00472cf7
push eax
lea ecx, [ebp - 0xee8]
call fcn.00405b90
lea eax, [ebp - 0x62c]
push eax
lea ecx, [ebp - 0xee8]
mov byte [ebp - 4], 0xe
call fcn.0041ddd6
push dword [esi - 0xc]
lea ecx, [ebp - 0xee8]
push esi
call fcn.0040815c
mov esi, dword [ebp - 0xee8]
push 0x2e
pop eax
push eax
push esi
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
je 0x447bbd
sub eax, esi
sar eax, 1
js 0x447bbd
push 0x2e
pop eax
push eax
push esi
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
jne 0x447b5b
or eax, 0xffffffff
jmp 0x447b5f
sub eax, esi
sar eax, 1
push eax
lea eax, [ebp - 0xf10]
push eax
lea ecx, [ebp - 0xee8]
call fcn.0041b8ba
push str..tmp
push eax
lea eax, [ebp - 0xf0c]
push eax
mov byte [ebp - 4], 0xf
call fcn.0043853f
add esp, 0xc
push eax
lea ecx, [ebp - 0xee8]
mov byte [ebp - 4], 0x10
call fcn.0040726a
mov ecx, dword [ebp - 0xf0c]
lea ecx, [ecx - 0x10]
call fcn.0041c730
mov ecx, dword [ebp - 0xf10]
mov byte [ebp - 4], 0xe
lea ecx, [ecx - 0x10]
call fcn.0041c730
jmp 0x447bcd
push str..tmp
lea ecx, [ebp - 0xee8]
call fcn.00408133
mov esi, dword [ebp - 0xee8]
push esi
push str.tempFile_1_s__n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
add esp, 0x10
cmp dword [ebp - 0xf04], 0
jne 0x447c16
push 0
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x447c21
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 5
call fcn.0041c730
mov esi, dword [ebp - 0xee4]
jmp 0x447d39
push esi
push ebx
call fcn.004358db
pop ecx
pop ecx
jmp 0x447bfb
push 0x80
push esi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push 0
push esi
push edi
call fcn.0040a456
movzx eax, ax
add esp, 0xc
test ax, ax
jns 0x447d03
push str.This_version_is_newer._n
push str.CInstallAction::ReplaceKernelDrivers
push 4
call fcn.00423f75
add esp, 0xc
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x447c77
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.00423f75
push edi
push str.systemFile_1_s__n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
add esp, 0x20
push 5
push edi
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x447ce3
push str.MoveFileEx_succeeded.__n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
push str.A_reboot_is_required._n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
mov eax, dword [ebp - 0xf18]
add esp, 0x18
or dword [eax + 0xb0], 1
jmp 0x447bff
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.MoveFileEx_failed.__0x_x__n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
add esp, 0x10
jmp 0x447bff
push edi
push str._1_is_equal_or_lower._n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x447bff
push edi
push str._1_donot_exist._n
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
add esp, 0x10
lea eax, [ebp - 0x21c]
test eax, eax
je 0x447dab
xor eax, eax
cmp ax, word [ebp - 0x21c]
je 0x447dab
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x447dab
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
je 0x447dab
lea eax, [ebp - 0x21c]
push eax
call fcn.004096af
lea eax, [ebp - 0x21c]
push eax
push str.tempPath
push str.CInstallAction::ReplaceKernelDrivers
push 4
call fcn.00423f57
push 0x20a
lea eax, [ebp - 0x21c]
push 0
push eax
call fcn.00587a70
add esp, 0x20
mov ecx, dword [ebp - 0xf00]
lea ecx, [ecx - 0x10]
call fcn.0041c730
push 0
push 1
lea ecx, [ebp - 0x850]
call fcn.00403a7f
mov ecx, dword [ebp - 0xef4]
lea ecx, [ecx - 0x10]
call fcn.0041c730
lea ecx, [esi - 0x10]
call fcn.0041c730
lea ecx, [ebx - 0x10]
call fcn.0041c730
or dword [ebp - 4], 0xffffffff
lea ecx, [edi - 0x10]
call fcn.0041c730
mov esi, dword [ebp - 0xefc]
inc esi
mov dword [ebp - 0xefc], esi
cmp esi, dword [ebp - 0xf20]
jae 0x447ea1
mov ebx, dword [ebp - 0xef8]
xor edi, edi
jmp 0x44748d
push 0
push 1
lea ecx, [ebp - 0xed8]
mov dword [ebp - method.CFileName.virtual_0], vtable.CFileName.0
call fcn.00403a7f
lea ecx, [ebp - 0x8b0]
call fcn.0045d256
mov ecx, dword [ebp - 0xf00]
lea ecx, [ecx - 0x10]
call fcn.0041c730
push 0
push 1
lea ecx, [ebp - 0x850]
call fcn.00403a7f
lea ecx, [edi - 0x10]
call fcn.0041c730
lea ecx, [esi - 0x10]
call fcn.0041c730
mov ecx, dword [ebp - 0xee0]
lea ecx, [ecx - 0x10]
call fcn.0041c730
mov ecx, dword [ebp - 0xeec]
or dword [ebp - 4], 0xffffffff
lea ecx, [ecx - 0x10]
call fcn.0041c730
push 0x5c9efc
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
add esp, 0xc
xor eax, eax
jmp 0x447eb8
push 0x5c9efc
push str.CInstallAction::ReplaceKernelDrivers
push 5
call fcn.00423f75
xor eax, eax
add esp, 0xc
inc eax
call fcn.00588a9a
ret 4