Function at 0x14003cd9c
Capabilities:
Copy file
Delete file
Get common file path
Read .ini file
Set file attributes

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x6e8
mov qword [rsp + 0x1c0], 0xfffffffffffffffe
mov rax, qword [0x140099938]
xor rax, rsp
mov qword [rsp + 0x6d0], rax
mov r12, r9
mov r13, r8
mov rbp, rdx
mov r14, rcx
mov r15, qword [rsp + 0x758]
mov qword [rsp + 0x58], r15
mov ebx, 0x100
xor edi, edi
mov rsi, rdi
mov qword [rsp + 0x228], 7
mov qword [rsp + 0x220], rdi
mov word [rsp + 0x210], di
lea rcx, [rsp + 0x130]
call fcn.1400527a8
nop
lea rcx, [rsp + 0xa0]
call fcn.140016ad8
nop
mov qword [rsp + 0x200], 7
mov qword [rsp + 0x1f8], rdi
mov word [rsp + 0x1e8], di
lea r8, [0x14007f570]
lea rdx, str.CPrinterDriverInf::AllocAndGetValue
lea ecx, [rdi + 5]
call fcn.140009480
cmp rbp, rdi
je 0x14003d824
cmp r13, rdi
je 0x14003d824
lea r8, str._OK__pSection__pKey._n
lea rdi, str.CPrinterDriverInf::AllocAndGetValue
mov rdx, rdi
mov esi, 5
mov ecx, esi
call fcn.140009480
mov r9, rbp
lea r8, str.pSection___1_s_._n
mov rdx, rdi
mov ecx, esi
call fcn.140009480
mov r9, r13
lea r8, str.pKey___1_s_._n
mov rdx, rdi
mov ecx, esi
call fcn.140009480
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [r14 + 0x18]
lea rcx, [rsp + 0x1e0]
call fcn.140002130
mov esi, 0x20a
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0x4c0]
call fcn.14005bb90
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0x2b0]
call fcn.14005bb90
lea rdx, [rsp + 0x4c0]
lea ecx, [rbx + 5]
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14003cfa3
lea r9, [rsp + 0x2b0]
xor r8d, r8d
lea rdx, [0x140080118]
lea rcx, [rsp + 0x4c0]
call qword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x14003cfa3
cmp qword [r14 + 0x38], 8
jb 0x14003cf3d
mov rcx, qword [r14 + 0x20]
jmp 0x14003cf41
lea rcx, [r14 + 0x20]
xor r8d, r8d
lea rdx, [rsp + 0x2b0]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x14003cfa3
lea r9, [rsp + 0x2b0]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov edx, 0x80
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x2b0]
call fcn.14005b1c0
mov r8, rax
lea rdx, [rsp + 0x2b0]
lea rcx, [rsp + 0x1e0]
call fcn.140002280
lea r9, [rsp + 0x1e8]
cmp qword [rsp + 0x200], 8
cmovae r9, qword [rsp + 0x1e8]
lea r8, str.strTargetInfFile___1_s__IN_n
lea rdi, str.CPrinterDriverInf::AllocAndGetValue
mov rdx, rdi
mov ecx, 5
call fcn.140009480
mov r8d, 0xab2
lea rdx, str...CommonDeviceInf.cpp
mov ecx, 0x200
call fcn.140048afc
mov rsi, rax
test rax, rax
je 0x14003d095
lea rcx, [rsp + 0x1e8]
cmp qword [rsp + 0x200], 8
cmovae rcx, qword [rsp + 0x1e8]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 2
lea r9, [rsp + 0x68]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea r9, [rsp + 0x1e8]
cmp qword [rsp + 0x200], 8
cmovae r9, qword [rsp + 0x1e8]
mov r8d, ebx
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
lea ecx, [rbx - 2]
cmp ecx, eax
jne 0x14003d095
mov rcx, rsi
call fcn.140048b24
add ebx, 0x100
mov ecx, ebx
add rcx, rcx
mov r8d, 0xabc
lea rdx, str...CommonDeviceInf.cpp
call fcn.140048afc
mov rsi, rax
test rax, rax
jne 0x14003cffb
lea r8, str.Get_section_items_finished._n
mov rdx, rdi
mov ebp, 5
mov ecx, ebp
call fcn.140009480
xor ebx, ebx
cmp word [rsp + 0x2b0], bx
je 0x14003d0ef
lea r9, [rsp + 0x2b0]
lea r8, str.Delete_the_temp_file.___1_s___n
mov rdx, rdi
mov ecx, ebp
call fcn.140009480
lea edx, [rbp + 0x7b]
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea rcx, [rsp + 0x2b0]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp rsi, rbx
jne 0x14003d171
cmp qword [rsp + 0x200], 8
jb 0x14003d10c
mov rcx, qword [rsp + 0x1e8]
call fcn.14005ab0c
mov qword [rsp + 0x200], 7
mov qword [rsp + 0x1f8], rbx
mov word [rsp + 0x1e8], bx
lea rcx, [rsp + 0xa0]
call fcn.140005edc
nop
mov rcx, qword [rsp + 0xa0]
call fcn.14005ab0c
nop
lea rcx, [rsp + 0x130]
call fcn.140052808
nop
cmp qword [rsp + 0x228], 8
jb 0x14003d16a
mov rcx, qword [rsp + 0x210]
call fcn.14005ab0c
xor eax, eax
jmp 0x14003d8cf
mov rdx, rsi
lea rcx, [rsp + 0x130]
call fcn.1400532bc
cmp eax, ebx
jne 0x14003d19e
lea r8, str._NG__dnlSectionItems.Set._n
mov rdx, rdi
mov ecx, ebp
call fcn.140009480
xor r14d, r14d
jmp 0x14003d839
lea r8, str._OK__dnlSectionItems.Set._n
mov rdx, rdi
mov ecx, ebp
call fcn.140009480
mov edi, ebx
lea rcx, [rsp + 0x130]
call fcn.140051294
cmp rax, rbx
jbe 0x14003d41b
xor r15d, r15d
mov rbp, r15
lea rcx, [rsp + 0x230]
call fcn.140051550
nop
mov rdx, rbp
lea rcx, [rsp + 0x130]
call fcn.1400512bc
mov rbx, rax
mov rdx, rbp
lea rcx, [rsp + 0x130]
call fcn.1400513e4
mov rdx, rax
lea r8, [rbx + 1]
lea rcx, [rsp + 0x230]
call fcn.140052064
lea rcx, [rsp + 0x230]
call fcn.14005153c
mov rdx, rax
lea rcx, [r14 + 0x50]
call fcn.14005429c
mov rbx, rax
mov ebp, 7
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0x88], r15
mov word [rsp + 0x78], r15w
mov rcx, rax
call fcn.14005b1c0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x70]
call fcn.140002280
nop
lea rcx, [rsp + 0x230]
call fcn.140051528
mov rdx, rax
lea rcx, [r14 + 0x50]
call fcn.14005429c
mov rbx, rax
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], r15
mov word [rsp + 0x38], r15w
mov rcx, rax
call fcn.14005b1c0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140002280
nop
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x170]
call fcn.140013af8
nop
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.140013b78
nop
lea r8, [rsp + 0xe0]
lea rdx, [rsp + 0x1c8]
lea rcx, [rsp + 0xa0]
call fcn.140015dac
nop
cmp qword [rsp + 0x128], 8
jb 0x14003d306
mov rcx, qword [rsp + 0x110]
call fcn.14005ab0c
mov qword [rsp + 0x128], rbp
mov qword [rsp + 0x120], r15
mov word [rsp + 0x110], r15w
cmp qword [rsp + 0x100], 8
jb 0x14003d337
mov rcx, qword [rsp + 0xe8]
call fcn.14005ab0c
mov qword [rsp + 0x100], rbp
mov qword [rsp + 0xf8], r15
mov word [rsp + 0xe8], r15w
cmp qword [rsp + 0x1b8], 8
jb 0x14003d368
mov rcx, qword [rsp + 0x1a0]
call fcn.14005ab0c
mov qword [rsp + 0x1b8], rbp
mov qword [rsp + 0x1b0], r15
mov word [rsp + 0x1a0], r15w
cmp qword [rsp + 0x190], 8
jb 0x14003d399
mov rcx, qword [rsp + 0x178]
call fcn.14005ab0c
mov qword [rsp + 0x190], rbp
mov qword [rsp + 0x188], r15
mov word [rsp + 0x178], r15w
cmp qword [rsp + 0x50], 8
jb 0x14003d3c4
mov rcx, qword [rsp + 0x38]
call fcn.14005ab0c
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x48], r15
mov word [rsp + 0x38], r15w
cmp qword [rsp + 0x90], 8
jb 0x14003d3ea
mov rcx, qword [rsp + 0x78]
call fcn.14005ab0c
nop
lea rcx, [rsp + 0x230]
call fcn.14005158c
inc edi
mov ebp, edi
lea rcx, [rsp + 0x130]
call fcn.140051294
cmp rbp, rax
jb 0x14003d1cd
mov r15, qword [rsp + 0x58]
mov ebp, 5
lea r8, str._OK__prepare_mapSectionItems._n
lea rdx, str.CPrinterDriverInf::AllocAndGetValue
mov ecx, ebp
call fcn.140009480
mov ebx, 7
mov qword [rsp + 0x50], rbx
xor r14d, r14d
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
mov rcx, r13
call fcn.14005b1c0
mov r8, rax
mov rdx, r13
lea rcx, [rsp + 0x30]
call fcn.140002280
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x1c8]
lea rcx, [rsp + 0xa0]
call fcn.140013938
movdqu xmm0, xmmword [rax]
movdqu xmmword [rsp + 0x58], xmm0
cmp qword [rsp + 0x50], 8
jb 0x14003d497
mov rcx, qword [rsp + 0x38]
call fcn.14005ab0c
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], r14
mov word [rsp + 0x38], r14w
mov rbp, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0x58]
cmp rdi, r14
je 0x14003d4c3
cmp rdi, qword [rsp + 0xa0]
je 0x14003d4c8
call fcn.14005c2f8
mov rbx, qword [rsp + 0x60]
cmp rbx, rbp
jne 0x14003d597
lea r8, str.pKey_is_not_found_on_the_section._n
lea rdi, str.CPrinterDriverInf::AllocAndGetValue
mov rdx, rdi
mov r13d, 5
mov ecx, r13d
call fcn.140009480
cmp r12, r14
jne 0x14003d50a
mov rcx, rsi
call fcn.140048b24
mov rsi, r14
jmp 0x14003d839
mov rbx, qword [rsp + 0x750]
mov rdx, rbx
mov rcx, r12
call fcn.14005ca00
lea rcx, [rax + rax + 2]
mov r8d, 0xae2
lea rdx, str...CommonDeviceInf.cpp
call fcn.140048afc
mov rbp, rax
lea r8, str.return_buffer_allocated._n
mov rdx, rdi
mov ecx, r13d
call fcn.140009480
cmp rbp, r14
jne 0x14003d567
lea r8, str.Memory_allocation_error.__pBufferReplaced__n
mov rdx, rdi
mov ecx, 2
call fcn.140009480
jmp 0x14003d839
mov rdx, rbx
mov rcx, r12
call fcn.14005ca00
lea rdx, [rax + 1]
mov r8, r12
mov rcx, rbp
call fcn.14005ceb0
mov rdx, rbx
mov rcx, r12
call fcn.14005ca00
inc rax
mov qword [r15], rax
jmp 0x14003d775
lea r8, str.pKey_has_been_found_on_the_section._n
lea r12, str.CPrinterDriverInf::AllocAndGetValue
mov rdx, r12
mov ebp, 5
mov ecx, ebp
call fcn.140009480
cmp rdi, r14
jne 0x14003d5c3
call fcn.14005c2f8
mov r11, r14
jmp 0x14003d5c6
mov r11, qword [rdi]
cmp rbx, qword [r11 + 0x30]
jne 0x14003d5d1
call fcn.14005c2f8
cmp qword [rbx + 0x60], 8
jb 0x14003d5de
mov r9, qword [rbx + 0x48]
jmp 0x14003d5e2
lea r9, [rbx + 0x48]
lea r8, str.iter__second.data______1_s__._n
mov rdx, r12
mov ecx, ebp
call fcn.140009480
cmp rdi, r14
jne 0x14003d602
call fcn.14005c2f8
mov r11, r14
jmp 0x14003d605
mov r11, qword [rdi]
cmp rbx, qword [r11 + 0x30]
jne 0x14003d610
call fcn.14005c2f8
mov rbp, qword [rbx + 0x58]
cmp rdi, r14
jne 0x14003d623
call fcn.14005c2f8
mov r11, r14
jmp 0x14003d626
mov r11, qword [rdi]
cmp rbx, qword [r11 + 0x30]
jne 0x14003d631
call fcn.14005c2f8
cmp qword [rbx + 0x60], 8
jb 0x14003d63e
mov rcx, qword [rbx + 0x48]
jmp 0x14003d642
lea rcx, [rbx + 0x48]
cmp rcx, r14
jne 0x14003d64c
mov rax, r14
jmp 0x14003d655
lea rdx, [rbp + 1]
call fcn.14005ca00
lea rcx, [rax + rax + 2]
mov r8d, 0xaee
lea rdx, str...CommonDeviceInf.cpp
call fcn.140048afc
mov rbp, rax
lea r8, str.return_buffer_allocated._n
mov rdx, r12
mov ecx, 5
call fcn.140009480
cmp rbp, r14
jne 0x14003d6a8
lea r8, str.Memory_allocation_error.__pBufferReplaced__n
lea rdi, str.CPrinterDriverInf::AllocAndGetValue
mov rdx, rdi
mov ecx, 2
call fcn.140009480
jmp 0x14003d839
cmp rdi, r14
jne 0x14003d6b7
call fcn.14005c2f8
mov r11, r14
jmp 0x14003d6ba
mov r11, qword [rdi]
cmp rbx, qword [r11 + 0x30]
jne 0x14003d6c5
call fcn.14005c2f8
cmp qword [rbx + 0x60], 8
jb 0x14003d6d2
mov r12, qword [rbx + 0x48]
jmp 0x14003d6d6
lea r12, [rbx + 0x48]
cmp rdi, r14
jne 0x14003d6e5
call fcn.14005c2f8
mov r11, r14
jmp 0x14003d6e8
mov r11, qword [rdi]
cmp rbx, qword [r11 + 0x30]
jne 0x14003d6f3
call fcn.14005c2f8
mov r13, qword [rbx + 0x58]
cmp rdi, r14
jne 0x14003d706
call fcn.14005c2f8
mov r11, r14
jmp 0x14003d709
mov r11, qword [rdi]
cmp rbx, qword [r11 + 0x30]
jne 0x14003d714
call fcn.14005c2f8
cmp qword [rbx + 0x60], 8
jb 0x14003d721
mov rcx, qword [rbx + 0x48]
jmp 0x14003d725
lea rcx, [rbx + 0x48]
cmp rcx, r14
jne 0x14003d72f
mov rax, r14
jmp 0x14003d738
lea rdx, [r13 + 1]
call fcn.14005ca00
lea rdx, [rax + 1]
mov r8, r12
mov rcx, rbp
call fcn.14005ceb0
cmp rdi, r14
jne 0x14003d756
call fcn.14005c2f8
mov r11, r14
jmp 0x14003d759
mov r11, qword [rdi]
cmp rbx, qword [r11 + 0x30]
jne 0x14003d764
call fcn.14005c2f8
mov rax, qword [rbx + 0x58]
inc rax
mov qword [r15], rax
lea rdi, str.CPrinterDriverInf::AllocAndGetValue
lea r8, str.buffer_copied._n
mov rdx, rdi
mov ebx, 5
mov ecx, ebx
call fcn.140009480
mov rcx, rsi
call fcn.140048b24
lea r8, [0x14007f590]
mov rdx, rdi
mov ecx, ebx
call fcn.140009480
nop
cmp qword [rsp + 0x200], 8
jb 0x14003d7bd
mov rcx, qword [rsp + 0x1e8]
call fcn.14005ab0c
mov qword [rsp + 0x200], 7
mov qword [rsp + 0x1f8], r14
mov word [rsp + 0x1e8], r14w
lea rcx, [rsp + 0xa0]
call fcn.140005edc
nop
mov rcx, qword [rsp + 0xa0]
call fcn.14005ab0c
nop
lea rcx, [rsp + 0x130]
call fcn.140052808
nop
cmp qword [rsp + 0x228], 8
jb 0x14003d81c
mov rcx, qword [rsp + 0x210]
call fcn.14005ab0c
mov rax, rbp
jmp 0x14003d8cf
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor r14d, r14d
lea rdi, str.CPrinterDriverInf::AllocAndGetValue
lea r8, [0x14007f590]
mov rdx, rdi
mov ecx, 5
call fcn.140009480
mov rcx, rsi
call fcn.140048b24
nop
cmp qword [rsp + 0x200], 8
jb 0x14003d86e
mov rcx, qword [rsp + 0x1e8]
call fcn.14005ab0c
mov qword [rsp + 0x200], 7
mov qword [rsp + 0x1f8], r14
mov word [rsp + 0x1e8], r14w
lea rcx, [rsp + 0xa0]
call fcn.140005edc
nop
mov rcx, qword [rsp + 0xa0]
call fcn.14005ab0c
nop
lea rcx, [rsp + 0x130]
call fcn.140052808
nop
cmp qword [rsp + 0x228], 8
jb 0x14003d8cd
mov rcx, qword [rsp + 0x210]
call fcn.14005ab0c
xor eax, eax
mov rcx, qword [rsp + 0x6d0]
xor rcx, rsp
call fcn.14005bad0
add rsp, 0x6e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret