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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb88
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov rax, qword [0x140099938]
xor rax, rsp
mov qword [rsp + 0xb70], rax
mov rsi, r9
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x48], rdx
mov r14, rcx
mov r15, qword [rsp + 0xbf0]
xor ebx, ebx
mov ebp, ebx
lea rcx, [rsp + 0x90]
call sym.DELDRV64.exe_public:_void___cdecl_CDeviceInf::constructor_void____ptr64
nop
mov qword [rsp + 0x30], rbx
mov edx, 0x105
lea rcx, [rsp + 0x960]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
cmp eax, ebx
jne 0x14002411b
jmp 0x1400245dd
lea r8, str.inf
mov edx, 0x105
lea rcx, [rsp + 0x960]
call fcn.14005c0a4
lea r8, [0x1400778f0]
mov edx, 0x105
lea rcx, [rsp + 0x960]
call fcn.14005c0a4
lea r8, [rsp + 0x960]
mov edx, 0x105
lea rcx, [rsp + 0x750]
call fcn.14005ceb0
lea r8, str.oem.inf
mov edx, 0x105
lea rcx, [rsp + 0x750]
call fcn.14005c0a4
cmp dword [0x14009b9e4], ebx
je 0x1400241c0
lea rcx, str.setupapi.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
cmp rax, rbx
jne 0x1400241ab
lea rcx, str.setupapi.dll
call fcn.140002494
cmp rax, rbx
je 0x1400241c0
lea rdx, str.SetupUninstallOEMInfW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x500]
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x1400245db
lea r8, [rsp + 0x960]
mov edx, 0x105
lea rcx, [rsp + 0x750]
call fcn.14005ceb0
lea r8, [rsp + 0x52c]
mov edx, 0x105
lea rcx, [rsp + 0x750]
call fcn.14005c0a4
lea rcx, [rsp + 0x90]
call sym.DELDRV64.exe_public:_void___cdecl_CDeviceInf::Clear_void____ptr64
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], rbx
mov word [rsp + 0x58], bx
lea rcx, [rsp + 0x750]
call fcn.14005b1c0
mov r8, rax
lea rdx, [rsp + 0x750]
lea rcx, [rsp + 0x50]
call fcn.140002280
nop
mov r13, qword [rsi + 0x30]
mov rdi, qword [rsi]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x80]
mov rcx, rsi
call fcn.140003840
mov rsi, rax
cmp qword [rax], rbx
je 0x140024283
cmp qword [rax], rdi
je 0x140024288
call fcn.14005c2f8
cmp qword [rsi + 8], r13
setne dil
cmp qword [rsp + 0x70], 8
jb 0x1400242a2
mov rcx, qword [rsp + 0x58]
call fcn.14005ab0c
cmp dil, bl
jne 0x1400245b3
mov r8, qword [rsp + 0x48]
mov rdx, r14
lea rcx, [rsp + 0x750]
call fcn.140023e30
cmp eax, ebx
je 0x1400245b3
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x750]
lea r8, str.__1_s___has_a_string___2_s__.
lea r13, str.DeleteAllRelatedInf
mov rdx, r13
mov ecx, 4
call fcn.140009480
lea r9, [rsp + 0x750]
lea r8, str.InfFile__1_s_._n
mov rdx, r13
mov ecx, 5
call fcn.140009480
mov dword [rsp + 0x20], ebx
mov r9d, 1
mov r8d, 0x105
lea rdx, [rsp + 0x750]
lea rcx, [rsp + 0x90]
call sym.DELDRV64.exe_public:_int___cdecl_CDeviceInf::Init_wchar_t_const____ptr64__unsigned_long_long_unsigned___int64___int__int____ptr64
cmp eax, ebx
je 0x1400245b3
lea rcx, [rsp + 0x90]
call sym.DELDRV64.exe_public:_wchar_t_const____ptr64___cdecl_CDeviceInf::GetInfClass_void____ptr64
mov rdi, rax
cmp rax, rbx
je 0x1400245b3
mov rsi, qword [rsp + 0x38]
mov rdx, rsi
mov rcx, rax
call fcn.14005c7d4
cmp eax, ebx
je 0x140024387
mov qword [rsp + 0x20], rdi
mov r9, rsi
lea r8, str.InfClass_is_not_match_SRC_1_s___DST_2_s__._n
mov rdx, r13
mov ecx, 5
call fcn.140009480
jmp 0x1400245b3
xor edx, edx
lea rcx, [rsp + 0x90]
call sym.DELDRV64.exe_public:_int___cdecl_CDeviceInf::GetFullInfo_int____ptr64
cmp eax, ebx
jne 0x1400243b3
lea r8, str.Cannot_get_inf_full_info._n
mov rdx, r13
mov ecx, 5
call fcn.140009480
jmp 0x1400245b3
mov esi, ebx
lea rcx, [rsp + 0x90]
call sym.DELDRV64.exe_public:_unsigned_long_int___cdecl_CDeviceInf::GetDeviceIdCount_void____ptr64
cmp eax, ebx
jbe 0x1400243fa
mov edx, esi
lea rcx, [rsp + 0x90]
call sym.DELDRV64.exe_public:_wchar_t_const____ptr64___cdecl_CDeviceInf::GetDeviceId_unsigned_long_int____ptr64
mov rdi, rax
mov rdx, r14
mov rcx, rax
call fcn.14005c7d4
cmp eax, ebx
je 0x1400243fa
inc esi
lea rcx, [rsp + 0x90]
call sym.DELDRV64.exe_public:_unsigned_long_int___cdecl_CDeviceInf::GetDeviceIdCount_void____ptr64
cmp esi, eax
jb 0x1400243c6
mov rdx, r14
mov rcx, rdi
call fcn.14005c7d4
cmp eax, ebx
je 0x14002442a
mov qword [rsp + 0x20], rdi
mov r9, r14
lea r8, str.hardware_is_not_match_SRC_1_s___DST_2_s__._n
mov rdx, r13
mov ecx, 5
call fcn.140009480
jmp 0x1400245b3
mov r9, r15
lea r8, str.pDescription_is__1_s__n
mov rdx, r13
mov esi, 5
mov ecx, esi
call fcn.140009480
cmp r15, rbx
je 0x14002448a
mov qword [rsp + 0x20], rbx
xor r9d, r9d
mov r8, qword [rsp + 0xbf8]
mov rdx, r15
lea rcx, [rsp + 0x90]
call sym.DELDRV64.exe_public:_unsigned_long_int___cdecl_CDeviceInf::HasSuitableDriver_wchar_t_const____ptr64__unsigned_long_long_unsigned___int64___wchar_t_const____ptr64__unsigned_long_long_unsigned___int64_____ptr64
cmp eax, ebx
jne 0x14002448a
mov qword [rsp + 0x20], rdi
mov r9, r15
lea r8, str.Description_is_not_match_SRC_1_s___DST_2_s__._n
mov rdx, r13
mov ecx, esi
call fcn.140009480
jmp 0x1400245b3
lea r9, [rsp + 0x750]
lea r8, str.Same_target_inf_has_been_found._Delete_it.__1_s___n
mov rdx, r13
mov edi, 4
mov ecx, edi
call fcn.140009480
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
and eax, 0xfffffffe
mov edx, eax
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov rax, qword [rsp + 0x30]
cmp rax, rbx
je 0x1400244e9
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x52c]
call rax
mov ebp, eax
jmp 0x1400245b3
cmp dword [0x14009b9ec], ebx
jne 0x1400245b3
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400245b3
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebp, eax
cmp eax, ebx
jne 0x140024555
lea r9, [rsp + 0x750]
lea r8, str.Cannot_delete_the_file__1_s__._n
mov rdx, r13
mov ecx, edi
call fcn.140009480
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, str.Error__0x_1_lx__n
mov rdx, r13
mov ecx, edi
call fcn.140009480
jmp 0x1400245b3
cmp dword [0x14009b988], ebx
jne 0x1400245b3
mov edx, 0x2e
lea rcx, [rsp + 0x750]
call fcn.14005bc7c
cmp rax, rbx
je 0x1400245b3
mov word [rax], bx
lea r8, str..PNF
mov edx, 0x105
lea rcx, [rsp + 0x750]
call fcn.14005c0a4
mov edx, 0x80
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ebp, eax
lea rdx, [rsp + 0x500]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
cmp eax, ebx
mov rsi, qword [rsp + 0x40]
jne 0x1400241e3
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FindClose]
nop
mov ebx, ebp
lea rcx, [rsp + 0x90]
call sym.DELDRV64.exe_public_virtual:_void___cdecl_CDeviceInf::destructor_void____ptr64
mov eax, ebx
mov rcx, qword [rsp + 0xb70]
xor rcx, rsp
call fcn.14005bad0
add rsp, 0xb88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret