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

Disassembly:
push 0x484
mov eax, 0x5b0080
call fcn.0058f792
mov esi, ecx
mov eax, dword [ebp + 8]
xor ecx, ecx
mov edi, dword [ebp + 0x10]
mov ebx, 0x100
mov dword [ebp - 0x45c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x460], eax
xor eax, eax
mov dword [ebp - 0x42c], 7
mov dword [ebp - 0x430], ecx
mov word [ebp - 0x440], ax
mov dword [ebp - 4], ecx
lea ecx, [ebp - 0x474]
call fcn.0046d53c
xor eax, eax
mov dword [ebp - 0x444], 7
mov dword [ebp - 0x448], eax
mov word [ebp - 0x458], ax
push 0x5cca70
push str.CPrinterDriverInf::GetFilesFromCopyFilesSection
push 5
mov byte [ebp - 4], 2
call fcn.00424dad
mov eax, dword [ebp - 0x45c]
add esp, 0xc
test eax, eax
je 0x4289d3
push dword [ebp + 0xc]
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x4289d3
add esi, 0x14
lea eax, [ebp - 0x458]
cmp eax, esi
je 0x42865e
push 0xffffffffffffffff
xor eax, eax
lea ecx, [ebp - 0x458]
push eax
push esi
call fcn.00404b26
xor eax, eax
push 0x20a
push eax
lea eax, [ebp - 0x428]
push eax
call fcn.0058e700
xor eax, eax
push 0x20a
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0058e700
add esp, 0x18
lea eax, [ebp - 0x428]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x428732
lea eax, [ebp - 0x21c]
push eax
xor eax, eax
push eax
push 0x5ca1f8
lea eax, [ebp - 0x428]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x428732
cmp dword [esi + 0x14], 8
jb 0x4286cb
mov esi, dword [esi]
xor eax, eax
push eax
lea eax, [ebp - 0x21c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x428732
lea eax, [ebp - 0x21c]
push eax
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
push 0x80
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp word [ebp - 0x21c], 0
jne 0x428712
xor eax, eax
jmp 0x42871f
lea eax, [ebp - 0x21c]
push eax
call fcn.0058edd4
pop ecx
push eax
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x458]
call fcn.00404be0
cmp dword [ebp - 0x444], 8
lea eax, [ebp - 0x458]
cmovae eax, dword [ebp - 0x458]
push eax
push str.strTargetInfFile___1_s__IN_n
push str.CPrinterDriverInf::GetFilesFromCopyFilesSection
push 5
call fcn.00424dad
push 0xba9
push str...CommonDeviceInf.cpp
push 0x200
call fcn.0045a88d
add esp, 0x1c
jmp 0x4287e9
cmp dword [ebp - 0x444], 8
lea ecx, [ebp - 0x458]
lea eax, [ebp - 0x478]
cmovae ecx, dword [ebp - 0x458]
push ecx
push 2
push eax
xor eax, eax
push eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
cmp dword [ebp - 0x444], 8
lea eax, [ebp - 0x458]
cmovae eax, dword [ebp - 0x458]
push eax
push ebx
push esi
push dword [ebp - 0x45c]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
lea ecx, [ebx - 2]
cmp ecx, eax
jne 0x4288e3
push esi
call fcn.0045a8a4
mov dword [esp], 0xbb4
add ebx, 0x100
push str...CommonDeviceInf.cpp
push ebx
call fcn.0045a88d
add esp, 0xc
mov esi, eax
test esi, esi
jne 0x428771
cmp word [ebp - 0x21c], 0
je 0x428833
lea eax, [ebp - 0x21c]
push eax
push str.Delete_the_temp_file.___1_s___n
push str.CPrinterDriverInf::GetFilesFromCopyFilesSection
push 5
call fcn.00424dad
add esp, 0x10
lea eax, [ebp - 0x21c]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test esi, esi
je 0x4289ef
push esi
lea ecx, [ebp - 0x474]
call fcn.0046e8e1
push esi
call fcn.0045a8a4
pop ecx
xor eax, eax
lea ecx, [ebp - 0x474]
mov ebx, eax
call fcn.0046d95f
test eax, eax
je 0x4289b8
lea ecx, [ebp - 0x490]
call fcn.0046d5d4
push 0x2c
push ebx
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 3
call fcn.0046dbf8
push eax
lea ecx, [ebp - 0x490]
call fcn.0046eb6a
push 0x20
lea ecx, [ebp - 0x490]
call fcn.0046f50b
test edi, edi
je 0x4288f7
push 0x5c
push edi
call fcn.00591e9b
mov esi, eax
xor eax, eax
pop ecx
pop ecx
cmp word [edi], ax
je 0x4288b9
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x440]
call fcn.00404be0
test esi, esi
je 0x42890a
xor eax, eax
cmp word [esi + 2], ax
je 0x42890a
push 0x5c
push 1
lea ecx, [ebp - 0x440]
call fcn.0041fc03
jmp 0x42890a
test eax, eax
jne 0x4287ef
push esi
call fcn.0045a8a4
pop ecx
jmp 0x4289ef
xor eax, eax
lea ecx, [ebp - 0x440]
push eax
push 0x5c4f10
call fcn.00404be0
xor esi, esi
lea ecx, [ebp - 0x490]
push esi
call fcn.0046dbf8
mov esi, eax
xor eax, eax
cmp word [esi], ax
je 0x428928
push esi
call fcn.0058edd4
pop ecx
push eax
push esi
lea ecx, [ebp - 0x440]
call fcn.00404a83
cmp dword [ebp - 0x42c], 8
lea ecx, [ebp - 0x440]
mov eax, dword [ebp - 0x430]
lea edx, [ebp - 0x440]
cmovae ecx, dword [ebp - 0x440]
cmovae edx, dword [ebp - 0x440]
push fcn.00590202
push edx
lea eax, [ecx + eax*2]
push eax
lea ecx, [ebp - 0x440]
cmovae ecx, dword [ebp - 0x440]
lea eax, [ebp - 0x45c]
push ecx
push eax
call fcn.004069eb
mov ecx, dword [ebp - 0x460]
lea eax, [ebp - 0x440]
add esp, 0x14
push eax
call fcn.00420c43
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 2
call fcn.0046d690
lea ecx, [ebp - 0x474]
inc ebx
call fcn.0046d95f
cmp ebx, eax
jb 0x428865
push 0x5cca8c
push str.CPrinterDriverInf::GetFilesFromCopyFilesSection
push 5
call fcn.00424dad
xor esi, esi
add esp, 0xc
inc esi
xor ebx, ebx
jmp 0x428a07
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
push str.pSection_is_invalid._n
push str.CPrinterDriverInf::GetFilesFromCopyFilesSection
push 5
call fcn.00424dad
add esp, 0xc
push 0x5cca8c
push str.CPrinterDriverInf::GetFilesFromCopyFilesSection
push 5
call fcn.00424dad
add esp, 0xc
xor ebx, ebx
mov esi, ebx
push ebx
push 1
lea ecx, [ebp - 0x458]
call fcn.00404970
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], bl
call fcn.0046d5eb
push ebx
push 1
lea ecx, [ebp - 0x440]
call fcn.00404970
mov eax, esi
call fcn.0058f741
ret 0x10