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

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x650
mov qword [rsp + 0xa0], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x140099938]
xor rax, rsp
mov qword [rsp + 0x640], rax
mov rbp, rcx
mov r12d, 0x100
lea rcx, [rsp + 0x60]
call fcn.1400527a8
nop
mov r13d, 7
mov qword [rsp + 0x120], r13
xor edi, edi
mov qword [rsp + 0x118], rdi
mov word [rsp + 0x108], di
mov qword [rsp + 0x170], r13
mov qword [rsp + 0x168], rdi
mov word [rsp + 0x158], di
mov qword [rsp + 0x198], r13
mov qword [rsp + 0x190], rdi
mov word [rsp + 0x180], di
mov qword [rsp + 0x148], r13
mov qword [rsp + 0x140], rdi
mov word [rsp + 0x130], di
cmp dword [rbp + 0xe8], edi
jne 0x14003f3c5
mov ecx, 0x3e9
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
lea esi, [rdi + 8]
cmp qword [rsp + 0x148], rsi
jb 0x14003f30f
mov rcx, qword [rsp + 0x130]
call fcn.14005ab0c
mov qword [rsp + 0x148], r13
mov qword [rsp + 0x140], rdi
mov word [rsp + 0x130], di
cmp qword [rsp + 0x198], rsi
jb 0x14003f33e
mov rcx, qword [rsp + 0x180]
call fcn.14005ab0c
mov qword [rsp + 0x198], r13
mov qword [rsp + 0x190], rdi
mov word [rsp + 0x180], di
cmp qword [rsp + 0x170], rsi
jb 0x14003f36d
mov rcx, qword [rsp + 0x158]
call fcn.14005ab0c
mov qword [rsp + 0x170], r13
mov qword [rsp + 0x168], rdi
mov word [rsp + 0x158], di
cmp qword [rsp + 0x120], rsi
jb 0x14003f39c
mov rcx, qword [rsp + 0x108]
call fcn.14005ab0c
mov qword [rsp + 0x120], r13
mov qword [rsp + 0x118], rdi
mov word [rsp + 0x108], di
lea rcx, [rsp + 0x60]
call fcn.140052808
xor eax, eax
jmp 0x14003fc0b
mov esi, 8
cmp qword [rbp + 0x88], rsi
jb 0x14003f3d9
mov rcx, qword [rbp + 0x70]
jmp 0x14003f3dd
lea rcx, [rbp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x14003f4c5
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
cmp qword [rsp + 0x148], rsi
jb 0x14003f40f
mov rcx, qword [rsp + 0x130]
call fcn.14005ab0c
mov qword [rsp + 0x148], r13
mov qword [rsp + 0x140], rdi
mov word [rsp + 0x130], di
cmp qword [rsp + 0x198], rsi
jb 0x14003f43e
mov rcx, qword [rsp + 0x180]
call fcn.14005ab0c
mov qword [rsp + 0x198], r13
mov qword [rsp + 0x190], rdi
mov word [rsp + 0x180], di
cmp qword [rsp + 0x170], rsi
jb 0x14003f46d
mov rcx, qword [rsp + 0x158]
call fcn.14005ab0c
mov qword [rsp + 0x170], r13
mov qword [rsp + 0x168], rdi
mov word [rsp + 0x158], di
cmp qword [rsp + 0x120], rsi
jb 0x14003f49c
mov rcx, qword [rsp + 0x108]
call fcn.14005ab0c
mov qword [rsp + 0x120], r13
mov qword [rsp + 0x118], rdi
mov word [rsp + 0x108], di
lea rcx, [rsp + 0x60]
call fcn.140052808
xor eax, eax
jmp 0x14003fc0b
lea rcx, [rbp + 8]
call fcn.1400078cc
lea rcx, [rbp + 0x38]
call fcn.1400078cc
lea rcx, [rbp + 0x3a0]
call fcn.1400078cc
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rbp + 0x68]
lea rcx, [rsp + 0x128]
call fcn.140002130
mov r13d, 0x20a
mov r8, r13
xor edx, edx
lea rcx, [rsp + 0x430]
call fcn.14005bb90
mov r8, r13
xor edx, edx
lea rcx, [rsp + 0x220]
call fcn.14005bb90
lea rdx, [rsp + 0x430]
mov ecx, 0x105
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov r13d, 0x80
cmp eax, edi
je 0x14003f5dd
lea r9, [rsp + 0x220]
xor r8d, r8d
lea rdx, [0x140080118]
lea rcx, [rsp + 0x430]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
cmp eax, edi
je 0x14003f5dd
cmp qword [rbp + 0x88], rsi
jb 0x14003f579
mov rcx, qword [rbp + 0x70]
jmp 0x14003f57d
lea rcx, [rbp + 0x70]
xor r8d, r8d
lea rdx, [rsp + 0x220]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
cmp eax, edi
je 0x14003f5dd
lea r9, [rsp + 0x220]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov edx, r13d
lea rcx, [rsp + 0x220]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x220]
call fcn.14005b1c0
mov r8, rax
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x128]
call fcn.140002280
lea r9, [rsp + 0x130]
cmp qword [rsp + 0x148], rsi
cmovae r9, qword [rsp + 0x130]
lea r8, str.strTargetInfFile___1_s__IN_n
lea rdx, str.CManufacturers::GetList
mov ecx, 5
call fcn.140009480
mov r8d, 0x8c7
lea rdx, str...CommonDeviceInf.cpp
mov ecx, 0x200
call fcn.140048afc
mov rbx, rax
cmp rax, rdi
je 0x14003f6e3
lea rcx, [rsp + 0x130]
cmp qword [rsp + 0x148], rsi
cmovae rcx, qword [rsp + 0x130]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 2
lea r9, [rsp + 0x58]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea r9, [rsp + 0x130]
cmp qword [rsp + 0x148], rsi
cmovae r9, qword [rsp + 0x130]
cmp qword [rbp + 0xd8], rsi
jb 0x14003f694
mov rcx, qword [rbp + 0xc0]
jmp 0x14003f69b
lea rcx, [rbp + 0xc0]
mov r8d, r12d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
lea ecx, [r12 - 2]
cmp ecx, eax
jne 0x14003f6e3
mov rcx, rbx
call fcn.140048b24
add r12d, 0x100
mov ecx, r12d
add rcx, rcx
mov r8d, 0x8d2
lea rdx, str...CommonDeviceInf.cpp
call fcn.140048afc
mov rbx, rax
cmp rax, rdi
jne 0x14003f631
cmp word [rsp + 0x220], di
je 0x14003f72c
lea r9, [rsp + 0x220]
lea r8, str.Delete_the_temp_file.___1_s___n
lea rdx, str.CManufacturers::GetList
mov ecx, 5
call fcn.140009480
mov edx, r13d
lea rcx, [rsp + 0x220]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x220]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp rbx, rdi
jne 0x14003f7fb
cmp qword [rsp + 0x148], rsi
jb 0x14003f74c
mov rcx, qword [rsp + 0x130]
call fcn.14005ab0c
mov ebx, 7
mov qword [rsp + 0x148], rbx
mov qword [rsp + 0x140], rdi
mov word [rsp + 0x130], di
cmp qword [rsp + 0x198], rsi
jb 0x14003f780
mov rcx, qword [rsp + 0x180]
call fcn.14005ab0c
mov qword [rsp + 0x198], rbx
mov qword [rsp + 0x190], rdi
mov word [rsp + 0x180], di
cmp qword [rsp + 0x170], rsi
jb 0x14003f7af
mov rcx, qword [rsp + 0x158]
call fcn.14005ab0c
mov qword [rsp + 0x170], rbx
mov qword [rsp + 0x168], rdi
mov word [rsp + 0x158], di
cmp qword [rsp + 0x120], rsi
jb 0x14003f7de
mov rcx, qword [rsp + 0x108]
call fcn.14005ab0c
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0x118], rdi
mov word [rsp + 0x108], di
jmp 0x14003fbff
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.1400532bc
mov rcx, rbx
call fcn.140048b24
mov r13d, edi
lea rcx, [rsp + 0x60]
call fcn.140051294
cmp rax, rdi
jbe 0x14003fb39
mov r12, rdi
lea rcx, [rsp + 0x1a0]
call fcn.140051550
nop
lea rcx, [rsp + 0xb0]
call fcn.140052eb4
nop
mov rdx, r12
lea rcx, [rsp + 0x60]
call fcn.1400512bc
mov rbx, rax
mov rdx, r12
lea rcx, [rsp + 0x60]
call fcn.1400513e4
mov rdx, rax
lea r8, [rbx + 1]
lea rcx, [rsp + 0x1a0]
call fcn.140052064
cmp qword [rbp + 0xe0], rdi
jne 0x14003f8d7
lea rcx, [rsp + 0x1a0]
call fcn.140051528
mov rbx, rax
mov rcx, rax
call fcn.14005b1c0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x100]
call fcn.140002280
lea rcx, [rsp + 0x1a0]
call fcn.14005153c
mov rbx, rax
mov rcx, rax
call fcn.14005b1c0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x150]
call fcn.140002280
jmp 0x14003f94b
lea rcx, [rsp + 0x1a0]
call fcn.140051528
mov rdx, rax
mov rcx, qword [rbp + 0xe0]
call fcn.14005429c
mov rbx, rax
mov rcx, rax
call fcn.14005b1c0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x100]
call fcn.140002280
lea rcx, [rsp + 0x1a0]
call fcn.14005153c
mov rdx, rax
mov rcx, qword [rbp + 0xe0]
call fcn.14005429c
mov rbx, rax
mov rcx, rax
call fcn.14005b1c0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x150]
call fcn.140002280
lea rax, [rsp + 0x108]
cmp qword [rsp + 0x120], rsi
cmovae rax, qword [rsp + 0x108]
cmp word [rax], 0x3b
jne 0x14003f9bc
lea r9, [rsp + 0x108]
cmp qword [rsp + 0x120], rsi
cmovae r9, qword [rsp + 0x108]
lea r8, str.strKey.data_____1_s__skipped._n
lea rdx, str.CManufacturers::GetList
mov ecx, 5
call fcn.140009480
nop
lea rcx, [rsp + 0xb0]
call fcn.140052ed8
nop
lea rcx, [rsp + 0x1a0]
call fcn.14005158c
jmp 0x14003fb20
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x178]
call fcn.140002130
lea rbx, [rsp + 0x108]
cmp qword [rsp + 0x120], rsi
cmovae rbx, qword [rsp + 0x108]
mov r12d, 7
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x48], rdi
mov word [rsp + 0x38], di
mov rcx, rbx
call fcn.14005b1c0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140002280
nop
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 8]
call fcn.14001a3a4
nop
cmp qword [rsp + 0x50], rsi
jb 0x14003fa3f
mov rcx, qword [rsp + 0x38]
call fcn.14005ab0c
lea rbx, [rsp + 0x158]
cmp qword [rsp + 0x170], rsi
cmovae rbx, qword [rsp + 0x158]
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x48], rdi
mov word [rsp + 0x38], di
mov rcx, rbx
call fcn.14005b1c0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140002280
nop
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x38]
call fcn.14001a3a4
nop
cmp qword [rsp + 0x50], rsi
jb 0x14003faa0
mov rcx, qword [rsp + 0x38]
call fcn.14005ab0c
lea rbx, [rsp + 0x180]
cmp qword [rsp + 0x198], rsi
cmovae rbx, qword [rsp + 0x180]
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x48], rdi
mov word [rsp + 0x38], di
mov rcx, rbx
call fcn.14005b1c0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140002280
nop
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x3a0]
call fcn.14001a3a4
nop
cmp qword [rsp + 0x50], rsi
jb 0x14003fb05
mov rcx, qword [rsp + 0x38]
call fcn.14005ab0c
nop
lea rcx, [rsp + 0xb0]
call fcn.140052ed8
nop
lea rcx, [rsp + 0x1a0]
call fcn.14005158c
inc r13d
mov r12d, r13d
lea rcx, [rsp + 0x60]
call fcn.140051294
cmp r12, rax
jb 0x14003f829
cmp qword [rsp + 0x148], rsi
jb 0x14003fb50
mov rcx, qword [rsp + 0x130]
call fcn.14005ab0c
mov ebx, 7
mov qword [rsp + 0x148], rbx
mov qword [rsp + 0x140], rdi
mov word [rsp + 0x130], di
cmp qword [rsp + 0x198], rsi
jb 0x14003fb84
mov rcx, qword [rsp + 0x180]
call fcn.14005ab0c
mov qword [rsp + 0x198], rbx
mov qword [rsp + 0x190], rdi
mov word [rsp + 0x180], di
cmp qword [rsp + 0x170], rsi
jb 0x14003fbb3
mov rcx, qword [rsp + 0x158]
call fcn.14005ab0c
mov qword [rsp + 0x170], rbx
mov qword [rsp + 0x168], rdi
mov word [rsp + 0x158], di
cmp qword [rsp + 0x120], rsi
jb 0x14003fbe2
mov rcx, qword [rsp + 0x108]
call fcn.14005ab0c
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0x118], rdi
mov word [rsp + 0x108], di
mov edi, 1
lea rcx, [rsp + 0x60]
call fcn.140052808
mov eax, edi
mov rcx, qword [rsp + 0x640]
xor rcx, rsp
call fcn.14005bad0
lea r11, [rsp + 0x650]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret