Function at 0x14002e2f0
Capabilities:
Check if file exists
Copy file
Delete file
Get common file path
Get file attributes
Read .ini file
Set file attributes

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x588
mov qword [rsp + 0x568], 0xfffffffffffffffe
mov rax, qword [0x1402aa808]
xor rax, rsp
mov qword [rsp + 0x578], rax
mov dword [rsp + 0x510], 0x100
mov eax, dword [rsp + 0x510]
mov dword [rsp + 0x520], eax
mov qword [rsp + 0x518], 0
lea rcx, [rsp + 0x4e0]
call fcn.140062470
nop
mov dword [rsp + 0x270], 0
lea rcx, [rsp + 0x2a0]
call fcn.140003370
nop
lea rcx, [rsp + 0x278]
call fcn.140003370
nop
lea rcx, [rsp + 0x528]
call fcn.140003370
nop
mov rax, qword [rsp + 0x590]
cmp dword [rax + 0x50], 0
jne 0x14002e3e9
mov ecx, 0x3e9
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsp + 0x558], 0
lea rcx, [rsp + 0x528]
call fcn.140003430
nop
lea rcx, [rsp + 0x278]
call fcn.140003430
nop
lea rcx, [rsp + 0x2a0]
call fcn.140003430
nop
lea rcx, [rsp + 0x4e0]
call fcn.1400629e0
mov eax, dword [rsp + 0x558]
jmp 0x14002e808
mov rax, qword [rsp + 0x590]
add rax, 0x28
mov rcx, rax
call fcn.140003530
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x14002e464
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsp + 0x55c], 0
lea rcx, [rsp + 0x528]
call fcn.140003430
nop
lea rcx, [rsp + 0x278]
call fcn.140003430
nop
lea rcx, [rsp + 0x2a0]
call fcn.140003430
nop
lea rcx, [rsp + 0x4e0]
call fcn.1400629e0
mov eax, dword [rsp + 0x55c]
jmp 0x14002e808
mov rax, qword [rsp + 0x590]
add rax, 8
mov rcx, rax
call fcn.140011e10
mov rax, qword [rsp + 0x590]
add rax, 0x28
mov rdx, rax
lea rcx, [rsp + 0x528]
call fcn.1400104f0
mov r8d, 0x20a
xor edx, edx
lea rcx, [rsp + 0x2d0]
call fcn.1401ac6a0
mov r8d, 0x20a
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.1401ac6a0
lea rdx, [rsp + 0x2d0]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14002e550
lea r9, [rsp + 0x60]
xor r8d, r8d
lea rdx, [0x1401f1ac8]
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x14002e550
mov rax, qword [rsp + 0x590]
add rax, 0x28
mov rcx, rax
call fcn.140003530
xor r8d, r8d
lea rdx, [rsp + 0x60]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x14002e550
lea r9, [rsp + 0x60]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov edx, 0x80
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x528]
call fcn.140010520
lea rcx, [rsp + 0x528]
call fcn.140003530
mov r8, rax
lea rdx, str.CIniSections::GetList_strTargetInfFile___1_s__IN_n
mov ecx, 5
call fcn.14001c160
mov eax, dword [rsp + 0x520]
shl rax, 1
mov r8d, 0x178c
lea rdx, [0x1401fe5d8]
mov rcx, rax
call fcn.140047520
mov qword [rsp + 0x518], rax
cmp qword [rsp + 0x518], 0
je 0x14002e66b
lea rcx, [rsp + 0x528]
call fcn.140003530
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 2
lea r9, [rsp + 0x550]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x528]
call fcn.140003530
mov r8, rax
mov edx, dword [rsp + 0x520]
mov rcx, qword [rsp + 0x518]
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionNamesW]
mov dword [rsp + 0x270], eax
mov eax, dword [rsp + 0x520]
sub eax, 2
cmp eax, dword [rsp + 0x270]
jne 0x14002e664
mov rcx, qword [rsp + 0x518]
call fcn.140047560
mov eax, dword [rsp + 0x510]
mov ecx, dword [rsp + 0x520]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x520], eax
mov eax, dword [rsp + 0x520]
shl rax, 1
mov r8d, 0x1797
lea rdx, str...CommonDeviceInf.cpp
mov rcx, rax
call fcn.140047520
mov qword [rsp + 0x518], rax
jmp 0x14002e666
jmp 0x14002e66b
jmp 0x14002e598
movzx eax, word [rsp + 0x60]
test eax, eax
je 0x14002e6a5
lea r8, [rsp + 0x60]
lea rdx, str.CIniSections::GetList_Delete_the_temp_file.___1_s___n
mov ecx, 5
call fcn.14001c160
mov edx, 0x80
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp qword [rsp + 0x518], 0
jne 0x14002e6fe
mov dword [rsp + 0x560], 0
lea rcx, [rsp + 0x528]
call fcn.140003430
nop
lea rcx, [rsp + 0x278]
call fcn.140003430
nop
lea rcx, [rsp + 0x2a0]
call fcn.140003430
nop
lea rcx, [rsp + 0x4e0]
call fcn.1400629e0
mov eax, dword [rsp + 0x560]
jmp 0x14002e808
mov rdx, qword [rsp + 0x518]
lea rcx, [rsp + 0x4e0]
call fcn.1400628a0
mov rcx, qword [rsp + 0x518]
call fcn.140047560
mov qword [rsp + 0x518], 0
mov dword [rsp + 0x554], 0
jmp 0x14002e749
mov eax, dword [rsp + 0x554]
inc eax
mov dword [rsp + 0x554], eax
mov eax, dword [rsp + 0x554]
mov qword [rsp + 0x570], rax
lea rcx, [rsp + 0x4e0]
call fcn.140062550
mov rcx, qword [rsp + 0x570]
cmp rcx, rax
jae 0x14002e7bf
mov eax, dword [rsp + 0x554]
mov edx, eax
lea rcx, [rsp + 0x4e0]
call fcn.1400627c0
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.1400033c0
nop
mov rax, qword [rsp + 0x590]
add rax, 8
lea rdx, [rsp + 0x38]
mov rcx, rax
call fcn.1400130c0
nop
lea rcx, [rsp + 0x38]
call fcn.140003430
jmp 0x14002e739
mov dword [rsp + 0x564], 1
lea rcx, [rsp + 0x528]
call fcn.140003430
nop
lea rcx, [rsp + 0x278]
call fcn.140003430
nop
lea rcx, [rsp + 0x2a0]
call fcn.140003430
nop
lea rcx, [rsp + 0x4e0]
call fcn.1400629e0
mov eax, dword [rsp + 0x564]
mov rcx, qword [rsp + 0x578]
xor rcx, rsp
call fcn.1401ab2d0
add rsp, 0x588
ret