Function at 0x404b00
Capabilities:
Create process on windows
Delete file
Enumerate files on windows
Get common file path
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x139c
call fcn.00414b20
mov eax, dword [0x4431cc]
push ebx
push esi
xor eax, ebp
push edi
mov dword [esp + 0x13a4], eax
lea eax, [esp + 0x1198]
push str.Setup.
push eax
or esi, 0xffffffff
call fcn.004145fa
mov ecx, dword [0x4446e8]
push ecx
lea edx, [esp + 0x11a4]
push edx
call fcn.004145d0
xor eax, eax
add esp, 0x10
mov ecx, 0x82
lea edi, [esp + 0xa68]
rep stosd dword es:[edi], eax
push 0x208
lea eax, [esp + 0xc74]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea ecx, [esp + 0xc70]
push str.inf_
push ecx
call fcn.004145d0
lea edx, [esp + 0xc78]
push str.o.inf
push edx
call fcn.004145d0
add esp, 0x10
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xc74]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [esp + 0xc], eax
mov edi, edi
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x70]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x404f19
xor eax, eax
mov ecx, 0x41
lea edi, [esp + 0x2c0]
rep stosd dword es:[edi], eax
push 0x104
lea ecx, [esp + 0x2c4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea edx, [esp + 0x2c0]
push str.inf_
push edx
call fcn.004145d0
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0x2cc]
push ecx
call fcn.004145d0
add esp, 0x10
push 0
push 2
push 0
lea edx, [esp + 0x2cc]
push edx
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x404bb0
lea eax, [esp + 0x10]
push eax
xor ebx, ebx
push ebx
push ebx
push str.PrimaryDriver
lea ecx, [esp + 0x11a8]
push ecx
push esi
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupGetLineTextW]
test eax, eax
jne 0x404c5e
push esi
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x404bb0
mov edx, dword [esp + 0x10]
lea eax, [edx + edx]
push eax
call fcn.00414c75
mov edi, eax
add esp, 4
cmp edi, ebx
je 0x404cca
mov ecx, dword [esp + 0x10]
push ebx
push ecx
push edi
push str.PrimaryDriver
lea edx, [esp + 0x11a8]
push edx
push esi
push ebx
call dword [sym.imp.SETUPAPI.dll_SetupGetLineTextW]
test eax, eax
jne 0x404ca9
push edi
call fcn.00414b5d
add esp, 4
push esi
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
jmp 0x404bb0
mov eax, dword [0x4446e8]
push eax
push edi
call fcn.00414f7d
add esp, 8
test eax, eax
jne 0x404cfb
push edi
call fcn.00414b5d
add esp, 4
jmp 0x404bb0
push 0xa
lea ecx, [esp + 0xe7c]
push ecx
push 0x13c9
call fcn.00414ddb
add esp, 0xc
push 0x43c88c
lea eax, [esp + 0x10]
lea edx, [esp + 0xe7c]
push eax
mov dword [esp + 0x14], edx
call fcn.00414e9e
cmp dword [0x44d2c8], 6
jne 0x404e45
xor eax, eax
mov word [esp + 0xe78], bx
mov ecx, 0x81
lea edi, [esp + 0xe7a]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov word [esp + 0x860], bx
mov ecx, 0x81
lea edi, [esp + 0x862]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov word [esp + 0x6d0], bx
xor eax, eax
mov ecx, 0x63
lea edi, [esp + 0x6d2]
rep stosd dword es:[edi], eax
push 0x104
lea ecx, [esp + 0xe7c]
push ecx
stosw word es:[edi], ax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea edx, [esp + 0xe78]
push edx
lea eax, [esp + 0x864]
push eax
call fcn.004145fa
lea ecx, [esp + 0x868]
push str.pnputil.exe
push ecx
call fcn.004145d0
lea edx, [esp + 0x6e0]
push 0x433df8
push edx
call fcn.004145fa
lea eax, [esp + 0x2d8]
push eax
lea ecx, [esp + 0x6ec]
push ecx
call fcn.004145d0
add esp, 0x20
xor eax, eax
mov ecx, 0x11
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x2c]
push eax
push ebx
push ebx
push 0x8000000
push ebx
push ebx
push ebx
lea ecx, [esp + 0x6f0]
push ecx
lea edx, [esp + 0x884]
push edx
mov dword [esp + 0x50], 0x44
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
mov eax, dword [esp + 0x14]
push 0x1388
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x404e1d
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x24]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [esp + 0x14]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call edi
mov ecx, dword [esp + 0x18]
push ecx
call edi
push str._r_ndeleted_the_inf_package_in_vista..._r_n
mov ecx, 0x44d2d0
call fcn.00402680
jmp 0x404f19
xor eax, eax
mov ecx, 0x82
lea edi, [esp + 0xa68]
lea edx, [esp + 0x2c0]
rep stosd dword es:[edi], eax
push edx
lea eax, [esp + 0xa6c]
push eax
call fcn.004145fa
mov ebx, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
add esp, 8
push 0x80
lea ecx, [esp + 0xa6c]
push ecx
call ebx
lea edx, [esp + 0xa68]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor eax, eax
mov ecx, 0x82
lea edi, [esp + 0x4c8]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x2c0]
push eax
lea ecx, [esp + 0x4cc]
push ecx
call fcn.004145fa
add esp, 8
lea edx, [esp + 0x4c8]
push str..pnf
push edx
call fcn.004144df
lea eax, [esp + eax*2 + 0x4c8]
add esp, 4
push eax
call fcn.004145fa
add esp, 8
push 0x80
lea ecx, [esp + 0x4cc]
push ecx
call ebx
lea edx, [esp + 0x4c8]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x404f19
push 4
push eax
lea eax, [esp + 0x4d0]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov dword [0x44d2a0], 1
mov ecx, dword [esp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
push esi
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov ecx, dword [esp + 0x13a4]
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.00414a22
mov esp, ebp
pop ebp
ret