Function at 0x43e282
Capabilities:
Check if file exists
Delete file
Enumerate files on windows
Get common file path
Get file attributes
Set file attributes

Disassembly:
push 0xcec
mov eax, 0x5aa5b1
call fcn.00588aeb
mov ebx, dword [ebp + 8]
lea ecx, [ebp - 0xa74]
mov dword [ebp - 0xcd8], ebx
call sym.SETUP.exe_public:_void___thiscall_CDeviceInf::constructor_void_
xor edi, edi
xor eax, eax
mov dword [ebp - 4], edi
mov dword [ebp - 0x6b8], 7
mov dword [ebp - 0x6bc], edi
mov word [ebp - 0x6cc], ax
inc eax
mov byte [ebp - 4], al
mov dword [ebp - 0xcd4], eax
push 0x105
lea eax, [ebp - 0x4a8]
mov esi, edi
push eax
mov dword [ebp - 0xcc8], esi
mov dword [ebp - 0xcdc], edi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
jne 0x43e2fc
mov dword [ebp - 0xcd4], edi
jmp 0x43e999
push str.inf
mov edi, 0x105
lea eax, [ebp - 0x4a8]
push edi
push eax
call fcn.0058af59
push 0x5bef0c
lea eax, [ebp - 0x4a8]
push edi
push eax
call fcn.0058af59
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x6b4]
push edi
push eax
call fcn.0058b0b1
push str.oem.inf
lea eax, [ebp - 0x6b4]
push edi
push eax
call fcn.0058af59
add esp, 0x30
cmp dword [0x63aa04], esi
je 0x43e383
mov edi, str.setupapi.dll
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
jne 0x43e371
push edi
call fcn.004042ad
pop ecx
test eax, eax
je 0x43e383
push str.SetupUninstallOEMInfW
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0xcdc], eax
mov edi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp dword [ebp + 0xc], esi
jne 0x43e43b
lea eax, [ebp - 0xcc4]
push eax
lea eax, [ebp - 0x6b4]
push eax
call edi
mov ebx, eax
cmp ebx, 0xffffffff
je 0x43e435
mov esi, dword [ebp - 0xcd8]
mov edi, dword [ebp - 0xcc8]
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0058b0b1
lea eax, [ebp - 0xc98]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0058af59
add esp, 0x18
cmp dword [esi + 0x3c], 8
jb 0x43e3f7
mov eax, dword [esi + 0x28]
jmp 0x43e3fa
lea eax, [esi + 0x28]
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0058b527
pop ecx
pop ecx
push 1
test eax, eax
pop eax
cmove edi, eax
lea eax, [ebp - 0xcc4]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x43e3b9
mov dword [ebp - 0xcc8], edi
mov edi, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov esi, dword [ebp - 0xcc8]
mov ebx, dword [ebp - 0xcd8]
lea eax, [ebp - 0xcc4]
push eax
lea eax, [ebp - 0x6b4]
push eax
call edi
mov dword [ebp - 0xccc], eax
cmp eax, 0xffffffff
je 0x43e997
add ebx, 0x28
mov dword [ebp - 0xcd0], ebx
mov edi, eax
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0058b0b1
lea eax, [ebp - 0xc98]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0058af59
add esp, 0x18
lea ecx, [ebp - 0xa74]
call sym.SETUP.exe_public:_void___thiscall_CDeviceInf::Clear_void_
lea eax, [ebp - 0x21c]
push eax
push str.FILE_1_s_._n
push str.CInstallAction::DeleteAllRelatedInf
push 5
call fcn.00423f75
add esp, 0x10
cmp dword [ebp + 0xc], 0
je 0x43e562
cmp dword [ebx + 0x14], 8
jb 0x43e4d2
mov eax, dword [ebx]
jmp 0x43e4d4
mov eax, ebx
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
jne 0x43e514
push str.The_target_file_is_the_self._n
push str.CInstallAction::DeleteAllRelatedInf
push 4
call fcn.00423f75
add esp, 0xc
mov edi, dword [ebp - 0xcd8]
lea ebx, [edi + 0x10]
mov dword [ebp - 0xce4], ebx
cmp dword [ebx + 0x14], 8
jb 0x43e587
mov eax, dword [ebx]
jmp 0x43e589
test esi, esi
jne 0x43e4fb
cmp dword [ebx + 0x14], 8
jb 0x43e522
mov eax, dword [ebx]
jmp 0x43e524
mov eax, ebx
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0041a043
pop ecx
pop ecx
test eax, eax
je 0x43e4fb
lea eax, [ebp - 0x21c]
push eax
push str.Do_not_delete_the_same_file__1_s__._n
push str.CInstallAction::DeleteAllRelatedInf
push 5
call fcn.00423f75
add esp, 0x10
xor eax, eax
lea esi, [eax + 1]
mov dword [ebp - 0xcc8], esi
jmp 0x43e97a
cmp dword [ebx + 0x14], 8
jb 0x43e56c
mov eax, dword [ebx]
jmp 0x43e56e
mov eax, ebx
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
je 0x43e97a
jmp 0x43e514
mov eax, ebx
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0041a2a9
pop ecx
pop ecx
test eax, eax
je 0x43e96e
cmp dword [ebx + 0x14], 8
jb 0x43e5aa
mov eax, dword [ebx]
jmp 0x43e5ac
mov eax, ebx
push eax
lea eax, [ebp - 0x21c]
push eax
push str.__1_s___has_a_string___2_s__.
push str.CInstallAction::DeleteAllRelatedInf
push 4
call fcn.00423f75
add esp, 0x14
xor eax, eax
push eax
inc eax
push eax
push 0x105
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0xa74]
call sym.SETUP.exe_public:_int___thiscall_CDeviceInf::Init_wchar_t_const___unsigned_int__int__int_
test eax, eax
je 0x43e96e
lea eax, [ebp - 0x21c]
push eax
push str.InfFile__1_s_._n
push str.CInstallAction::DeleteAllRelatedInf
push 5
call fcn.00423f75
add esp, 0x10
lea ecx, [ebp - 0xa74]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInf::GetInfClass_void_
mov esi, eax
test esi, esi
je 0x43e968
add edi, 0x40
mov dword [ebp - 0xcf0], edi
cmp dword [edi + 0x14], 8
jb 0x43e62f
mov eax, dword [edi]
jmp 0x43e631
mov eax, edi
push eax
push esi
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
je 0x43e661
cmp dword [edi + 0x14], 8
jb 0x43e646
mov edi, dword [edi]
push edi
push esi
push str.InfClass_is_not_match_SRC_1_s___DST_2_s__._n
push str.CInstallAction::DeleteAllRelatedInf
push 5
call fcn.00423f75
add esp, 0x14
jmp 0x43e968
xor eax, eax
inc eax
push eax
lea ecx, [ebp - 0xa74]
call sym.SETUP.exe_public:_int___thiscall_CDeviceInf::GetFullInfo_int_
test eax, eax
jne 0x43e68d
push str.Cannot_get_inf_full_info._n
push str.CInstallAction::DeleteAllRelatedInf
push 5
call fcn.00423f75
add esp, 0xc
jmp 0x43e968
mov eax, dword [ebp - 0xcd8]
add eax, 0x100
mov dword [ebp - 0xce0], eax
mov esi, dword [eax]
xor eax, eax
lea ecx, [ebp - 0xa74]
mov dword [ebp - 0xcec], eax
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInf::GetDeviceIdCount_void_
test eax, eax
je 0x43e779
mov ebx, dword [ebp - 0xcec]
mov edi, dword [ebp - 0xce0]
push ebx
lea ecx, [ebp - 0xa74]
call sym.SETUP.exe_public:_wchar_t_const____thiscall_CDeviceInf::GetDeviceId_unsigned_long_int_
mov esi, eax
xor eax, eax
cmp word [esi], ax
je 0x43e6e3
push esi
call fcn.00588144
pop ecx
push eax
push esi
lea ecx, [ebp - 0x6cc]
call fcn.00403cef
cmp dword [ebp - 0x6b8], 8
mov eax, dword [ebp - 0x6bc]
lea ecx, [ebp - 0x6cc]
cmovae ecx, dword [ebp - 0x6cc]
push fcn.005896c4
lea eax, [ecx + eax*2]
lea edx, [ebp - 0x6cc]
cmovae edx, dword [ebp - 0x6cc]
push edx
push eax
lea ecx, [ebp - 0x6cc]
cmovae ecx, dword [ebp - 0x6cc]
push ecx
lea eax, [ebp - 0xcf8]
push eax
call fcn.00405b31
add esp, 0x14
lea eax, [ebp - 0x6cc]
push eax
lea eax, [ebp - 0xcf4]
push eax
mov ecx, edi
call fcn.0041fa16
mov esi, dword [eax]
cmp esi, dword [edi]
jne 0x43e76d
lea ecx, [ebp - 0xa74]
inc ebx
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInf::GetDeviceIdCount_void_
cmp ebx, eax
jb 0x43e6c7
mov edi, dword [ebp - 0xcf0]
mov ebx, dword [ebp - 0xce4]
mov eax, dword [ebp - 0xce0]
cmp esi, dword [eax]
jne 0x43e78d
push str.no_hardware_id_matched._n
jmp 0x43e679
xor eax, eax
push 0x80
push eax
lea eax, [ebp - 0x29c]
push eax
call fcn.00587a70
add esi, 0x10
mov dword [ebp - 0xce8], 0x40
mov eax, dword [esi + 0x10]
add esp, 0xc
cmp dword [esi + 0x14], 8
jb 0x43e7bc
mov esi, dword [esi]
lea ecx, [ebp - 0xce8]
push ecx
lea ecx, [ebp - 0x29c]
push ecx
push 1
inc eax
push eax
push esi
lea ecx, [ebp - 0xa74]
call sym.SETUP.exe_public:_unsigned_long_int___thiscall_CDeviceInf::GetSuitableDriverName_wchar_t_const___unsigned_int__int__wchar_t___unsigned_long_int__
test eax, eax
jne 0x43e7e8
push str.no_suitable_driver_has_found._n
jmp 0x43e679
cmp dword [ebx + 0x14], 8
jb 0x43e7f0
mov ebx, dword [ebx]
lea eax, [ebp - 0x29c]
push eax
push ebx
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
je 0x43e80d
push str.Same_description_is_not_found._n
jmp 0x43e679
cmp dword [edi + 0x14], 8
jb 0x43e815
mov edi, dword [edi]
push str.Printer
push edi
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
jne 0x43e841
lea eax, [ebp - 0xa74]
push eax
call fcn.00470a56
pop ecx
test eax, eax
je 0x43e841
push str.DriverInfo_is_match._n
jmp 0x43e679
lea eax, [ebp - 0x21c]
push eax
push str.Same_target_inf_has_been_found._Delete_it.__1_s___n
mov esi, str.CInstallAction::DeleteAllRelatedInf
push esi
push 4
call fcn.00423f75
mov ebx, dword [ebp - 0xcdc]
add esp, 0x10
test ebx, ebx
je 0x43e88c
push 0x80
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
xor eax, eax
push eax
push eax
lea eax, [ebp - 0xc98]
push eax
call ebx
mov dword [ebp - 0xcd4], eax
cmp dword [0x63aa0c], 0
jne 0x43e968
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x43e968
push 0x80
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ebx, dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x21c]
push eax
call ebx
mov edi, eax
mov dword [ebp - 0xcd4], edi
test edi, edi
jne 0x43e90c
lea eax, [ebp - 0x21c]
push eax
push str.Cannot_delete_the_file__1_s__._n
push esi
push 4
call fcn.00423f75
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error__0x_1_lx__n
push esi
push 4
call fcn.00423f75
add esp, 0x10
jmp 0x43e968
cmp dword [0x63a99c], 0
jne 0x43e968
lea eax, [ebp - 0x21c]
push 0x2e
push eax
call fcn.0058b1ea
pop ecx
pop ecx
test eax, eax
je 0x43e968
xor ecx, ecx
push str..PNF
mov word [eax], cx
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.0058af59
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x21c]
push eax
call ebx
mov dword [ebp - 0xcd4], eax
mov esi, dword [ebp - 0xcc8]
mov ebx, dword [ebp - 0xcd0]
mov edi, dword [ebp - 0xccc]
lea eax, [ebp - 0xcc4]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x43e465
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
xor edi, edi
xor eax, eax
push edi
inc eax
push eax
lea ecx, [ebp - 0x6cc]
call fcn.00403a7f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xa74]
call sym.SETUP.exe_public_virtual:_void___thiscall_CDeviceInf::destructor_void_
mov eax, dword [ebp - 0xcd4]
call fcn.00588a9a
ret 8