Function at 0x404710
Capabilities:
Enumerate files on windows
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1134
call fcn.00414b20
mov eax, dword [0x4431cc]
push ebx
push esi
push edi
xor eax, ebp
push str.ready_to_delete_printer_files_from_spool_folder_hardware_id_folder_r_n
mov ecx, 0x44d2d0
mov dword [esp + 0x1140], eax
mov dword [esp + 0x18], 0
call fcn.00402680
xor eax, eax
mov ecx, 0x82
lea edi, [esp + 0x4f0]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x14]
push eax
push 0x104
lea ecx, [esp + 0x908]
push ecx
push 1
push 0
push 0
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
lea edx, [esp + 0x900]
push edx
lea eax, [esp + 0x4f4]
push eax
call fcn.004145fa
lea ecx, [esp + 0x4f8]
push 0x4330e4
push ecx
call fcn.004145d0
lea edx, [esp + 0x500]
push edx
lea eax, [esp + 0xc24]
push eax
call fcn.004145fa
add esp, 0x18
lea ecx, [esp + 0x2e8]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea edx, [esp + 0x2e8]
push edx
call fcn.004144df
add esp, 4
cmp word [esp + eax*2 + 0x2e6], 0x5c
je 0x4047f7
lea eax, [esp + 0x2e8]
push 0x4330e4
push eax
call fcn.004145d0
add esp, 8
lea ecx, [esp + 0x2e8]
push 0x444b28
push ecx
call fcn.004145d0
add esp, 8
push 0
push 2
push 0
lea edx, [esp + 0x2f4]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
jne 0x404869
push str.failed_to_open_printer_inf_file..uninstall_will_abort_r_n
mov ecx, 0x44d2d0
call fcn.00402680
push 0xa
lea eax, [esp + 0xe1c]
push eax
push 0x13f0
call fcn.00414ddb
add esp, 0xc
push 0x43c88c
lea edx, [esp + 0x14]
lea ecx, [esp + 0xe1c]
push edx
mov dword [esp + 0x18], ecx
call fcn.00414e9e
lea ecx, [esp + 0x20]
push ecx
push 0x4444e0
push 0x433bc4
push eax
call dword [sym.imp.SETUPAPI.dll_SetupFindFirstLineW]
lea edx, [esp + 0x20]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupGetFieldCount]
mov edi, eax
mov esi, 1
cmp edi, esi
jb 0x4048bc
mov ebx, dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
jmp 0x4048a0
push 0
push 0x104
lea eax, [esp + 0xa10]
push eax
push esi
lea ecx, [esp + 0x30]
push ecx
call ebx
inc esi
cmp esi, edi
jbe 0x4048a0
lea edx, [esp + 0xa08]
push edx
call fcn.004144df
lea eax, [esp + eax*2 + 0xa02]
push eax
lea ecx, [esp + 0x288]
push ecx
call fcn.004145fa
lea edx, [esp + 0x28c]
push edx
call fcn.0041512c
mov dword [esp + 0x28], eax
lea eax, [esp + 0xc20]
push 0x433bbc
push eax
call fcn.004145d0
add esp, 0x18
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0xc14]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [esp + 0x10], eax
xor eax, eax
mov ecx, 0x82
lea edi, [esp + 0x6f8]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x4f0]
push eax
lea ecx, [esp + 0x6fc]
push ecx
call fcn.004145fa
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x704]
push eax
call fcn.004145d0
lea ecx, [esp + 0x6c]
push ecx
call fcn.0041512c
add esp, 0x14
lea edx, [esp + 0x6f8]
push edx
mov esi, eax
call ebx
test al, 0x10
je 0x404997
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.00414f7d
add esp, 8
test eax, eax
je 0x404997
lea ecx, [esp + 0x6f8]
push ecx
call fcn.00404150
add esp, 4
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x30]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x404921
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov ecx, dword [esp + 0x113c]
pop edi
pop esi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.00414a22
mov esp, ebp
pop ebp
ret