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

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x998
mov qword [rsp + 0x970], 0xfffffffffffffffe
mov rax, qword [0x1402aa808]
xor rax, rsp
mov qword [rsp + 0x988], rax
mov dword [rsp + 0x560], 0x100
mov eax, dword [rsp + 0x560]
mov dword [rsp + 0x598], eax
mov qword [rsp + 0x590], 0
lea rcx, [rsp + 0x530]
call fcn.140062470
nop
mov dword [rsp + 0x2c0], 0
lea rcx, [rsp + 0x5a0]
call fcn.140065c10
nop
lea rcx, [rsp + 0x2f0]
call fcn.140003370
nop
lea rcx, [rsp + 0x2c8]
call fcn.140003370
nop
lea rcx, [rsp + 0x568]
call fcn.140003370
nop
lea rcx, [rsp + 0x880]
call fcn.140003370
nop
mov rax, qword [rsp + 0x9a0]
cmp dword [rax + 0xa0], 0
jne 0x140023018
mov ecx, 0x3e9
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsp + 0x960], 0
lea rcx, [rsp + 0x880]
call fcn.140003430
nop
lea rcx, [rsp + 0x568]
call fcn.140003430
nop
lea rcx, [rsp + 0x2c8]
call fcn.140003430
nop
lea rcx, [rsp + 0x2f0]
call fcn.140003430
nop
lea rcx, [rsp + 0x5a0]
call fcn.140066f20
nop
lea rcx, [rsp + 0x530]
call fcn.1400629e0
mov eax, dword [rsp + 0x960]
jmp 0x14002377f
mov rax, qword [rsp + 0x9a0]
add rax, 0x48
mov rcx, rax
call fcn.140003530
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1400230af
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [rsp + 0x964], 0
lea rcx, [rsp + 0x880]
call fcn.140003430
nop
lea rcx, [rsp + 0x568]
call fcn.140003430
nop
lea rcx, [rsp + 0x2c8]
call fcn.140003430
nop
lea rcx, [rsp + 0x2f0]
call fcn.140003430
nop
lea rcx, [rsp + 0x5a0]
call fcn.140066f20
nop
lea rcx, [rsp + 0x530]
call fcn.1400629e0
mov eax, dword [rsp + 0x964]
jmp 0x14002377f
mov rax, qword [rsp + 0x9a0]
add rax, 8
mov rcx, rax
call fcn.140011e10
mov rax, qword [rsp + 0x9a0]
add rax, 0x28
mov rcx, rax
call fcn.140011e10
mov rax, qword [rsp + 0x9a0]
add rax, 0xa8
mov rcx, rax
call fcn.140011e10
mov rax, qword [rsp + 0x9a0]
add rax, 0x48
mov rdx, rax
lea rcx, [rsp + 0x880]
call fcn.1400104f0
mov r8d, 0x20a
xor edx, edx
lea rcx, [rsp + 0x320]
call fcn.1401ac6a0
mov r8d, 0x20a
xor edx, edx
lea rcx, [rsp + 0xb0]
call fcn.1401ac6a0
lea rdx, [rsp + 0x320]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x1400231db
lea r9, [rsp + 0xb0]
xor r8d, r8d
lea rdx, [0x1401ec208]
lea rcx, [rsp + 0x320]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x1400231db
mov rax, qword [rsp + 0x9a0]
add rax, 0x48
mov rcx, rax
call fcn.140003530
xor r8d, r8d
lea rdx, [rsp + 0xb0]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x1400231db
lea r9, [rsp + 0xb0]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov edx, 0x80
lea rcx, [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x880]
call fcn.140010520
lea rcx, [rsp + 0x880]
call fcn.140003530
mov r8, rax
lea rdx, str.CManufacturers::GetList_strTargetInfFile___1_s__IN_n
mov ecx, 5
call fcn.14001c160
mov eax, dword [rsp + 0x598]
shl rax, 1
mov r8d, 0x96c
lea rdx, [0x1401ec478]
mov rcx, rax
call fcn.140047520
mov qword [rsp + 0x590], rax
cmp qword [rsp + 0x590], 0
je 0x14002331b
lea rcx, [rsp + 0x880]
call fcn.140003530
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 2
lea r9, [rsp + 0x8a8]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea rcx, [rsp + 0x880]
call fcn.140003530
mov qword [rsp + 0x978], rax
mov rcx, qword [rsp + 0x9a0]
add rcx, 0x70
call fcn.140003530
mov rcx, qword [rsp + 0x978]
mov r9, rcx
mov r8d, dword [rsp + 0x598]
mov rdx, qword [rsp + 0x590]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
mov dword [rsp + 0x2c0], eax
mov eax, dword [rsp + 0x598]
sub eax, 2
cmp eax, dword [rsp + 0x2c0]
jne 0x140023314
mov rcx, qword [rsp + 0x590]
call fcn.140047560
mov eax, dword [rsp + 0x560]
mov ecx, dword [rsp + 0x598]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x598], eax
mov eax, dword [rsp + 0x598]
shl rax, 1
mov r8d, 0x977
lea rdx, [0x1401ec5a8]
mov rcx, rax
call fcn.140047520
mov qword [rsp + 0x590], rax
jmp 0x140023316
jmp 0x14002331b
jmp 0x140023223
movzx eax, word [rsp + 0xb0]
test eax, eax
je 0x140023361
lea r8, [rsp + 0xb0]
lea rdx, str.CManufacturers::GetList_Delete_the_temp_file.___1_s___n
mov ecx, 5
call fcn.14001c160
mov edx, 0x80
lea rcx, [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0xb0]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp qword [rsp + 0x590], 0
jne 0x1400233d6
mov dword [rsp + 0x968], 0
lea rcx, [rsp + 0x880]
call fcn.140003430
nop
lea rcx, [rsp + 0x568]
call fcn.140003430
nop
lea rcx, [rsp + 0x2c8]
call fcn.140003430
nop
lea rcx, [rsp + 0x2f0]
call fcn.140003430
nop
lea rcx, [rsp + 0x5a0]
call fcn.140066f20
nop
lea rcx, [rsp + 0x530]
call fcn.1400629e0
mov eax, dword [rsp + 0x968]
jmp 0x14002377f
mov rdx, qword [rsp + 0x590]
lea rcx, [rsp + 0x530]
call fcn.1400628a0
mov rcx, qword [rsp + 0x590]
call fcn.140047560
mov qword [rsp + 0x590], 0
mov dword [rsp + 0x8ac], 0
jmp 0x140023421
mov eax, dword [rsp + 0x8ac]
inc eax
mov dword [rsp + 0x8ac], eax
mov eax, dword [rsp + 0x8ac]
mov qword [rsp + 0x980], rax
lea rcx, [rsp + 0x530]
call fcn.140062550
mov rcx, qword [rsp + 0x980]
cmp rcx, rax
jae 0x14002371a
lea rcx, [rsp + 0x8e0]
call fcn.140063cb0
nop
lea rcx, [rsp + 0x8b0]
call fcn.140061270
nop
mov eax, dword [rsp + 0x8ac]
mov edx, eax
lea rcx, [rsp + 0x530]
call fcn.1400627c0
mov rdx, rax
lea rcx, [rsp + 0x8e0]
call fcn.140063df0
mov rax, qword [rsp + 0x9a0]
cmp qword [rax + 0x98], 0
jne 0x1400234de
lea rcx, [rsp + 0x8e0]
call fcn.140063d90
mov rdx, rax
lea rcx, [rsp + 0x2f0]
call fcn.140010520
lea rcx, [rsp + 0x8e0]
call fcn.140063dc0
mov rdx, rax
lea rcx, [rsp + 0x2c8]
call fcn.140010520
jmp 0x140023546
lea rcx, [rsp + 0x8e0]
call fcn.140063d90
mov rdx, rax
mov rax, qword [rsp + 0x9a0]
mov rcx, qword [rax + 0x98]
call fcn.140063680
mov rdx, rax
lea rcx, [rsp + 0x2f0]
call fcn.140010520
lea rcx, [rsp + 0x8e0]
call fcn.140063dc0
mov rdx, rax
mov rax, qword [rsp + 0x9a0]
mov rcx, qword [rax + 0x98]
call fcn.140063680
mov rdx, rax
lea rcx, [rsp + 0x2c8]
call fcn.140010520
lea rcx, [rsp + 0x2f0]
call fcn.140003530
movzx eax, word [rax]
cmp eax, 0x3b
jne 0x14002359d
lea rcx, [rsp + 0x2f0]
call fcn.140003530
mov r8, rax
lea rdx, str.CManufacturers::GetList_strKey.data_____1_s__skipped._n
mov ecx, 5
call fcn.14001c160
nop
lea rcx, [rsp + 0x8b0]
call fcn.1400612b0
nop
lea rcx, [rsp + 0x8e0]
call fcn.140063d20
jmp 0x140023411
cmp dword [rsp + 0x5a8], 0
jne 0x1400235c8
cmp dword [rsp + 0x9a8], 0
jne 0x1400235c8
lea rdx, [rsp + 0x2f0]
lea rcx, [rsp + 0x568]
call fcn.1400104f0
jmp 0x140023631
lea rcx, [rsp + 0x2c8]
call fcn.140003530
mov r8w, 0x2c
mov rdx, rax
lea rcx, [rsp + 0x8b0]
call fcn.1400612e0
lea rcx, [rsp + 0x8b0]
call fcn.140062550
test rax, rax
je 0x14002361d
xor edx, edx
lea rcx, [rsp + 0x8b0]
call fcn.1400627c0
mov rdx, rax
lea rcx, [rsp + 0x568]
call fcn.140010520
jmp 0x140023631
lea rdx, [0x1401eb880]
lea rcx, [rsp + 0x568]
call fcn.140010520
lea rcx, [rsp + 0x2f0]
call fcn.140003530
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.1400033c0
nop
mov rax, qword [rsp + 0x9a0]
add rax, 8
lea rdx, [rsp + 0x38]
mov rcx, rax
call fcn.1400130c0
nop
lea rcx, [rsp + 0x38]
call fcn.140003430
lea rcx, [rsp + 0x2c8]
call fcn.140003530
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.1400033c0
nop
mov rax, qword [rsp + 0x9a0]
add rax, 0x28
lea rdx, [rsp + 0x60]
mov rcx, rax
call fcn.1400130c0
nop
lea rcx, [rsp + 0x60]
call fcn.140003430
lea rcx, [rsp + 0x568]
call fcn.140003530
mov rdx, rax
lea rcx, [rsp + 0x88]
call fcn.1400033c0
nop
mov rax, qword [rsp + 0x9a0]
add rax, 0xa8
lea rdx, [rsp + 0x88]
mov rcx, rax
call fcn.1400130c0
nop
lea rcx, [rsp + 0x88]
call fcn.140003430
nop
lea rcx, [rsp + 0x8b0]
call fcn.1400612b0
nop
lea rcx, [rsp + 0x8e0]
call fcn.140063d20
jmp 0x140023411
mov dword [rsp + 0x96c], 1
lea rcx, [rsp + 0x880]
call fcn.140003430
nop
lea rcx, [rsp + 0x568]
call fcn.140003430
nop
lea rcx, [rsp + 0x2c8]
call fcn.140003430
nop
lea rcx, [rsp + 0x2f0]
call fcn.140003430
nop
lea rcx, [rsp + 0x5a0]
call fcn.140066f20
nop
lea rcx, [rsp + 0x530]
call fcn.1400629e0
mov eax, dword [rsp + 0x96c]
mov rcx, qword [rsp + 0x988]
xor rcx, rsp
call fcn.1401ab2d0
add rsp, 0x998
ret