Function at 0x403880
Capabilities:
Delete file
Enumerate files on windows
Get common file path
Set file attributes

Disassembly:
mov r11, rsp
sub rsp, 0x868
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov qword [r11 - 8], rbx
mov qword [r11 - 0x10], rbp
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x20], rdi
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x38], r14
mov qword [r11 - 0x40], r15
mov rax, qword [0x00460ad8]
mov qword [rsp + 0x810], rax
mov rsi, r8
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x60], rdx
mov dword [rsp + 0x90], 0
xor edx, edx
mov r8d, 0x13c
lea rcx, [r11 - 0x7d4]
call fcn.00418b40
call fcn.0043a268
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
call fcn.0043a268
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
call fcn.0043a268
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rdx, str.FUNC_01VEN_10EC
mov r12, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x40396e
movzx edi, dx
mov ecx, edi
call fcn.0043a254
test rax, rax
je 0x40398a
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.00401b10
jmp 0x40398a
xor eax, eax
mov rcx, r12
mov rdi, rdx
repne scasb al, byte [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x38]
call fcn.00401c90
nop
xor r9d, r9d
xor r8d, r8d
mov edx, 0x408
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_SendMessageA]
mov r15, rax
mov dword [rsp + 0x30], 0
mov edx, 0x100
lea rcx, [rsp + 0x600]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea rdi, [rsp + 0x600]
xor eax, eax
mov rcx, r12
repne scasb al, byte [rdi]
mov rcx, qword [str.infoem.inf]
mov qword [rdi - 1], rcx
mov eax, dword [0x004477a8]
mov dword [rdi + 7], eax
movzx eax, word [0x004477ac]
mov word [rdi + 0xb], ax
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x600]
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov qword [rsp + 0x50], rax
mov r13d, 1
nop
xor eax, eax
mov rcx, r12
lea rdi, [rsp + 0xbc]
repne scasb al, byte [rdi]
not rcx
dec rcx
mov rdi, rcx
test ecx, ecx
jne 0x403a7f
lea rdx, [rbx - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x403afa
cmp dword [rdx + 0x10], eax
jge 0x403a54
cmp dword [rbx - 0xc], eax
jl 0x403dae
mov dword [rbx - 0x10], eax
mov byte [rbx], al
jmp 0x403afa
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x403a6b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
jmp 0x403afa
mov esi, dword [rbx - 0x10]
lea rbp, [rsp + 0xbc]
sub rbp, rbx
mov ecx, r13d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x403aad
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.00401870
mov rbx, qword [rsp + 0x40]
cmp rbp, rsi
ja 0x403ac9
movsxd rsi, edi
lea r8, [rbx + rbp]
mov r9, rsi
mov rdx, rsi
mov rcx, rbx
call fcn.00418130
jmp 0x403ae2
movsxd rsi, edi
mov r9, rsi
lea r8, [rsp + 0xbc]
mov rdx, rsi
mov rcx, rbx
call fcn.00418060
test edi, edi
js 0x403e2c
cmp edi, dword [rbx - 0xc]
jg 0x403e2c
mov dword [rbx - 0x10], edi
mov byte [rsi + rbx], 0
xor r14d, r14d
xor ebp, ebp
xor r9d, r9d
xor edx, edx
lea r8d, [r14 + 2]
mov rcx, rbx
call qword [sym.imp.SETUPAPI.dll_SetupOpenInfFileA]
mov rsi, rax
mov eax, 0x66666667
mov edi, dword [rsp + 0x30]
imul edi
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
lea edx, [rdx + rdx*4]
add edx, edx
cmp edi, edx
jne 0x403b55
cmp r15d, 0x5a
jge 0x403b55
movsxd r8, r15d
xor r9d, r9d
mov edx, 0x402
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_SendMessageA]
inc r15d
inc edi
mov dword [rsp + 0x30], edi
cmp rsi, 0xffffffffffffffff
je 0x403c9e
lea r9, [rsp + 0x68]
xor r8d, r8d
lea rdx, str.Manufacturer
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x403c34
xor edi, edi
mov qword [rsp + 0x20], rdi
mov r9d, 0x100
lea r8, [rsp + 0x1d0]
mov edx, r13d
lea rcx, [rsp + 0x68]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
test eax, eax
je 0x403c34
lea rdi, [rsp + 0x1d0]
xor eax, eax
mov rcx, r12
repne scasb al, byte [rdi]
mov rax, qword [str..NTamd64]
mov qword [rdi - 1], rax
movzx eax, byte [0x00447788]
mov byte [rdi + 7], al
lea r9, [rsp + 0x68]
xor r8d, r8d
lea rdx, [rsp + 0x1d0]
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x403c34
xor edi, edi
mov qword [rsp + 0x20], rdi
mov r9d, 0x100
lea r8, [rsp + 0x1d0]
lea edx, [rdi + 2]
lea rcx, [rsp + 0x68]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
test eax, eax
je 0x403c34
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x1d0]
call fcn.00417f00
test rax, rax
je 0x403c34
mov r14d, r13d
jmp 0x403c42
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x403d92
lea r9, [rsp + 0x68]
xor r8d, r8d
lea rdx, str.Strings
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupFindFirstLineA]
test eax, eax
je 0x403c9e
mov qword [rsp + 0x20], rdi
mov r9d, 0x100
lea r8, [rsp + 0x1d0]
mov edx, r13d
lea rcx, [rsp + 0x68]
call qword [sym.imp.SETUPAPI.dll_SetupGetStringFieldA]
test eax, eax
je 0x403c9e
lea rdx, str.Microsoft
lea rcx, [rsp + 0x1d0]
call fcn.00417f00
test rax, rax
cmove ebp, r13d
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
test r14d, r14d
je 0x403d92
test ebp, ebp
je 0x403d92
mov rdx, rbx
lea rcx, [rsp + 0x700]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
mov rdx, rbx
lea rcx, [rsp + 0x4f0]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
mov rdi, qword [rsp + 0x60]
mov rdx, rdi
lea rcx, [rsp + 0x3e0]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
mov rdx, rdi
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
lea rdx, [0x00447760]
lea rcx, [rsp + 0x4f0]
call fcn.00417f00
mov byte [rax], 0x2e
mov byte [rax + 1], 0x50
mov byte [rax + 2], 0x4e
mov byte [rax + 3], 0x46
lea rdx, [rsp + 0x700]
lea rcx, [rsp + 0x3e0]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
lea rdx, [rsp + 0x4f0]
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
mov edx, 0x80
lea rcx, [rsp + 0x3e0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [rsp + 0x3e0]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edx, 0x80
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea rcx, [rsp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
lea rdx, [rsp + 0x90]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x403db9
jmp 0x403a10
mov ecx, 0x80070057
call fcn.00401440
int3
test r14d, r14d
je 0x403dc2
test ebp, ebp
jne 0x403dc5
xor r13d, r13d
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x403de6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x403e07
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r12d
dec r12d
test r12d, r12d
jg 0x403e27
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.oledlg.dll_OleUIBusyA]
mov eax, r13d
jmp 0x403e37
mov ecx, 0x80070057
call fcn.00401440
nop
mov rcx, qword [rsp + 0x810]
call fcn.004306c0
mov rbx, qword [rsp + 0x860]
mov rbp, qword [rsp + 0x858]
mov rsi, qword [rsp + 0x850]
mov rdi, qword [rsp + 0x848]
mov r12, qword [rsp + 0x840]
mov r13, qword [rsp + 0x838]
mov r14, qword [rsp + 0x830]
mov r15, qword [rsp + 0x828]
add rsp, 0x868
ret