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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe14
mov eax, dword [0x43f194]
push ebx
push esi
push edi
mov dword [esp + 0x14], ecx
push str.ready_to_delete_printer_files_from_spool_folder_hardware_id_folder_r_n
mov ecx, 0x442370
mov dword [esp + 0xe20], eax
mov dword [esp + 0x1c], 0
call fcn.00402000
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x4a8]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x18]
push eax
push 0x104
lea ecx, [esp + 0x6b8]
push ecx
push 1
push 0
push 0
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
lea edx, [esp + 0x6b0]
push edx
lea eax, [esp + 0x4ac]
push eax
call fcn.004115e7
lea ecx, [esp + 0x4b0]
push 0x4301a0
push ecx
call fcn.004115bd
lea edx, [esp + 0x4b8]
push edx
lea eax, [esp + 0xa1c]
push eax
call fcn.004115e7
add esp, 0x18
lea ecx, [esp + 0x98]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
lea edx, [esp + 0x98]
push edx
call fcn.0041156a
add esp, 4
cmp word [esp + eax*2 + 0x96], 0x5c
je 0x4037e5
lea eax, [esp + 0x98]
push 0x4301a0
push eax
call fcn.004115bd
add esp, 8
lea ecx, [esp + 0x98]
push 0x440ae0
push ecx
call fcn.004115bd
add esp, 8
push 0
push 2
push 0
lea edx, [esp + 0xa4]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
cmp eax, 0xffffffff
jne 0x403891
push 0x320
call fcn.00420e21
push 0x320
mov esi, eax
call fcn.00420e21
add esp, 8
push str.failed_to_open_printer_inf_file..uninstall_will_abort_r_n
mov ecx, 0x442370
mov edi, eax
call fcn.00402000
mov eax, dword [0x4404c4]
mov ebx, dword [sym.imp.USER32.dll_LoadStringW]
push 0x190
push esi
push 0x13f1
push eax
call ebx
push esi
push edi
call fcn.004115e7
mov ecx, dword [0x4404c4]
add esp, 8
push 0x190
push esi
push 0x13fd
push ecx
call ebx
push esi
push edi
call fcn.004115bd
add esp, 8
push 0x43869c
lea edx, [esp + 0x14]
push edx
mov dword [esp + 0x18], edi
call fcn.0041229d
lea ecx, [esp + 0x20]
push ecx
push 0x4404c8
push 0x430624
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 0x4038ec
mov ebx, dword [sym.imp.SETUPAPI.dll_SetupGetStringFieldW]
jmp 0x4038d0
push 0
push 0x104
lea eax, [esp + 0xc18]
push eax
push esi
lea ecx, [esp + 0x30]
push ecx
call ebx
inc esi
cmp esi, edi
jbe 0x4038d0
lea edx, [esp + 0xc10]
push edx
call fcn.0041156a
lea eax, [esp + eax*2 + 0xc0a]
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.004115e7
lea edx, [esp + 0x3c]
push edx
call fcn.0041217e
mov dword [esp + 0x20], eax
lea eax, [esp + 0xa18]
push 0x43061c
push eax
call fcn.004115bd
add esp, 0x18
lea ecx, [esp + 0x7b8]
push ecx
lea edx, [esp + 0xa0c]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [esp + 0x1c], eax
mov edi, edi
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x2a0]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x4a8]
push eax
lea ecx, [esp + 0x2a4]
push ecx
call fcn.004115e7
lea edx, [esp + 0x7ec]
push edx
lea eax, [esp + 0x2ac]
push eax
call fcn.004115bd
lea ecx, [esp + 0x7f4]
push ecx
call fcn.0041217e
add esp, 0x14
lea edx, [esp + 0x2a0]
push edx
mov esi, eax
call ebx
test al, 0x10
je 0x4039cd
mov eax, dword [esp + 0x10]
push eax
push esi
call fcn.00411f9f
add esp, 8
test eax, eax
je 0x4039cd
lea ecx, [esp + 0x2a0]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004033f0
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x7b8]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x403950
mov ecx, dword [esp + 0xe1c]
call fcn.00411bef
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret