Function at 0x1400223b0
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, 0x648
mov qword [rsp + 0x620], 0xfffffffffffffffe
mov rax, qword [0x1402aa808]
xor rax, rsp
mov qword [rsp + 0x638], rax
mov dword [rsp + 0x540], 0x100
mov eax, dword [rsp + 0x540]
mov dword [rsp + 0x550], eax
mov qword [rsp + 0x548], 0
lea rcx, [rsp + 0x510]
call fcn.140062470
nop
mov dword [rsp + 0x2a0], 0
lea rcx, [rsp + 0x2d0]
call fcn.140003370
nop
lea rcx, [rsp + 0x2a8]
call fcn.140003370
nop
lea rcx, [rsp + 0x558]
call fcn.140003370
nop
mov rax, qword [rsp + 0x650]
cmp dword [rax + 0xa0], 0
jne 0x1400224ac
mov ecx, 0x3e9
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsp + 0x610], 0
lea rcx, [rsp + 0x558]
call fcn.140003430
nop
lea rcx, [rsp + 0x2a8]
call fcn.140003430
nop
lea rcx, [rsp + 0x2d0]
call fcn.140003430
nop
lea rcx, [rsp + 0x510]
call fcn.1400629e0
mov eax, dword [rsp + 0x610]
jmp 0x140022a94
mov rax, qword [rsp + 0x650]
add rax, 0x48
mov rcx, rax
call fcn.140003530
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x140022527
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsp + 0x614], 0
lea rcx, [rsp + 0x558]
call fcn.140003430
nop
lea rcx, [rsp + 0x2a8]
call fcn.140003430
nop
lea rcx, [rsp + 0x2d0]
call fcn.140003430
nop
lea rcx, [rsp + 0x510]
call fcn.1400629e0
mov eax, dword [rsp + 0x614]
jmp 0x140022a94
mov rax, qword [rsp + 0x650]
add rax, 8
mov rcx, rax
call fcn.140011e10
mov rax, qword [rsp + 0x650]
add rax, 0x28
mov rcx, rax
call fcn.140011e10
mov rax, qword [rsp + 0x650]
add rax, 0x48
mov rdx, rax
lea rcx, [rsp + 0x558]
call fcn.1400104f0
mov r8d, 0x20a
xor edx, edx
lea rcx, [rsp + 0x300]
call fcn.1401ac6a0
mov r8d, 0x20a
xor edx, edx
lea rcx, [rsp + 0x90]
call fcn.1401ac6a0
lea rdx, [rsp + 0x300]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14002263d
lea r9, [rsp + 0x90]
xor r8d, r8d
lea rdx, [0x1401ebe88]
lea rcx, [rsp + 0x300]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x14002263d
mov rax, qword [rsp + 0x650]
add rax, 0x48
mov rcx, rax
call fcn.140003530
xor r8d, r8d
lea rdx, [rsp + 0x90]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x14002263d
lea r9, [rsp + 0x90]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov edx, 0x80
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x558]
call fcn.140010520
lea rcx, [rsp + 0x558]
call fcn.140003530
mov r8, rax
lea rdx, str.CDeviceInfSection::GetList_strTargetInfFile___1_s__IN_n
mov ecx, 5
call fcn.14001c160
mov eax, dword [rsp + 0x550]
shl rax, 1
mov r8d, 0x8b5
lea rdx, [0x1401ec1d8]
mov rcx, rax
call fcn.140047520
mov qword [rsp + 0x548], rax
cmp qword [rsp + 0x548], 0
je 0x14002277d
lea rcx, [rsp + 0x558]
call fcn.140003530
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 2
lea r9, [rsp + 0x580]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x558]
call fcn.140003530
mov qword [rsp + 0x628], rax
mov rcx, qword [rsp + 0x650]
add rcx, 0x70
call fcn.140003530
mov rcx, qword [rsp + 0x628]
mov r9, rcx
mov r8d, dword [rsp + 0x550]
mov rdx, qword [rsp + 0x548]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
mov dword [rsp + 0x2a0], eax
mov eax, dword [rsp + 0x550]
sub eax, 2
cmp eax, dword [rsp + 0x2a0]
jne 0x140022776
mov rcx, qword [rsp + 0x548]
call fcn.140047560
mov eax, dword [rsp + 0x540]
mov ecx, dword [rsp + 0x550]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x550], eax
mov eax, dword [rsp + 0x550]
shl rax, 1
mov r8d, 0x8c0
lea rdx, [0x1401ec2e8]
mov rcx, rax
call fcn.140047520
mov qword [rsp + 0x548], rax
jmp 0x140022778
jmp 0x14002277d
jmp 0x140022685
movzx eax, word [rsp + 0x90]
test eax, eax
je 0x1400227c3
lea r8, [rsp + 0x90]
lea rdx, str.CDeviceInfSection::GetList_Delete_the_temp_file.___1_s___n
mov ecx, 5
call fcn.14001c160
mov edx, 0x80
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp qword [rsp + 0x548], 0
jne 0x14002281c
mov dword [rsp + 0x618], 0
lea rcx, [rsp + 0x558]
call fcn.140003430
nop
lea rcx, [rsp + 0x2a8]
call fcn.140003430
nop
lea rcx, [rsp + 0x2d0]
call fcn.140003430
nop
lea rcx, [rsp + 0x510]
call fcn.1400629e0
mov eax, dword [rsp + 0x618]
jmp 0x140022a94
mov rdx, qword [rsp + 0x548]
lea rcx, [rsp + 0x510]
call fcn.1400628a0
mov rcx, qword [rsp + 0x548]
call fcn.140047560
mov qword [rsp + 0x548], 0
mov dword [rsp + 0x584], 0
jmp 0x140022867
mov eax, dword [rsp + 0x584]
inc eax
mov dword [rsp + 0x584], eax
mov eax, dword [rsp + 0x584]
mov qword [rsp + 0x630], rax
lea rcx, [rsp + 0x510]
call fcn.140062550
mov rcx, qword [rsp + 0x630]
cmp rcx, rax
jae 0x140022a4b
lea rcx, [rsp + 0x590]
call fcn.140063cb0
nop
mov eax, dword [rsp + 0x584]
mov edx, eax
lea rcx, [rsp + 0x510]
call fcn.1400627c0
mov rdx, rax
mov rcx, qword [rsp + 0x650]
call sym.Setup.exe_protected:_int___cdecl_CDeviceInfSection::IsComment_wchar_t_const____ptr64____ptr64
test eax, eax
je 0x1400228de
lea rcx, [rsp + 0x590]
call fcn.140063d20
jmp 0x140022857
mov eax, dword [rsp + 0x584]
mov edx, eax
lea rcx, [rsp + 0x510]
call fcn.1400627c0
mov rdx, rax
lea rcx, [rsp + 0x590]
call fcn.140063df0
mov rax, qword [rsp + 0x650]
cmp qword [rax + 0x98], 0
jne 0x140022952
lea rcx, [rsp + 0x590]
call fcn.140063d90
mov rdx, rax
lea rcx, [rsp + 0x2d0]
call fcn.140010520
lea rcx, [rsp + 0x590]
call fcn.140063dc0
mov rdx, rax
lea rcx, [rsp + 0x2a8]
call fcn.140010520
jmp 0x1400229ba
lea rcx, [rsp + 0x590]
call fcn.140063d90
mov rdx, rax
mov rax, qword [rsp + 0x650]
mov rcx, qword [rax + 0x98]
call fcn.140063680
mov rdx, rax
lea rcx, [rsp + 0x2d0]
call fcn.140010520
lea rcx, [rsp + 0x590]
call fcn.140063dc0
mov rdx, rax
mov rax, qword [rsp + 0x650]
mov rcx, qword [rax + 0x98]
call fcn.140063680
mov rdx, rax
lea rcx, [rsp + 0x2a8]
call fcn.140010520
lea rcx, [rsp + 0x2d0]
call fcn.140003530
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.1400033c0
nop
mov rax, qword [rsp + 0x650]
add rax, 8
lea rdx, [rsp + 0x38]
mov rcx, rax
call fcn.1400130c0
nop
lea rcx, [rsp + 0x38]
call fcn.140003430
lea rcx, [rsp + 0x2a8]
call fcn.140003530
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.1400033c0
nop
mov rax, qword [rsp + 0x650]
add rax, 0x28
lea rdx, [rsp + 0x60]
mov rcx, rax
call fcn.1400130c0
nop
lea rcx, [rsp + 0x60]
call fcn.140003430
nop
lea rcx, [rsp + 0x590]
call fcn.140063d20
jmp 0x140022857
mov dword [rsp + 0x61c], 1
lea rcx, [rsp + 0x558]
call fcn.140003430
nop
lea rcx, [rsp + 0x2a8]
call fcn.140003430
nop
lea rcx, [rsp + 0x2d0]
call fcn.140003430
nop
lea rcx, [rsp + 0x510]
call fcn.1400629e0
mov eax, dword [rsp + 0x61c]
mov rcx, qword [rsp + 0x638]
xor rcx, rsp
call fcn.1401ab2d0
add rsp, 0x648
ret