Function at 0x401250
Capabilities:
Create process on windows
Create process suspended
Set current directory

Disassembly:
sub esp, 0x4ac
mov eax, dword [0x420044]
xor eax, esp
mov dword [esp + 0x4a4], eax
mov eax, dword [str.DriverUnInstall.exe]
mov ecx, dword [0x41bcb0]
mov edx, dword [0x41bcb4]
push ebx
mov dword [esp + 0x70], eax
mov eax, dword [0x41bcb8]
push ebp
mov ebp, dword [esp + 0x4bc]
mov dword [esp + 0x80], eax
mov eax, dword [0x41bcc4]
mov ebx, 1
mov dword [esp + 0x78], ecx
mov ecx, dword [0x41bcbc]
mov dword [esp + 0x7c], edx
mov edx, dword [str.Driver]
push esi
mov dword [esp + 0x74], eax
push edi
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x14], ebx
mov eax, str.Install
cmp byte [esp + 0x4c0], bl
je 0x4012d4
mov eax, str.Uninstall
push eax
push str.0.2_InstallFiterDriver___to__s_n
call fcn.004032b0
add esp, 8
cmp byte [esp + 0x4c0], 0
je 0x4012f1
call section..text
lea ecx, [esp + 0x74]
push ecx
push ebp
lea edx, [esp + 0x98]
push str._s_s_vl810filter.inf
push edx
call fcn.00407696
lea eax, [esp + 0xa0]
push 0x41bd14
push eax
call fcn.004077d7
add esp, 0x18
test eax, eax
jne 0x40133c
lea ecx, [esp + 0x90]
push ecx
push str.___Error__s_not_fopen__n
call fcn.004077ee
add esp, 8
jmp 0x401508
push eax
call fcn.0040792a
add esp, 4
cmp dword [0x42106c], 0
je 0x401365
lea edx, [esp + 0x90]
push edx
push str.InfDefaultInstall64.exe___s_
lea eax, [esp + 0x2a8]
push eax
jmp 0x40137a
lea ecx, [esp + 0x90]
push ecx
push str.InfDefaultInstall.exe___s_
lea edx, [esp + 0x2a8]
push edx
call fcn.00407696
mov dl, byte [esp + 0x4cc]
add esp, 0xc
xor eax, eax
test dl, dl
je 0x4014b0
jmp 0x4013a0
mov cl, byte [esp + eax + 0x2a0]
mov byte [esp + eax + 0x198], cl
add eax, ebx
test cl, cl
jne 0x4013a0
mov eax, str.Install
cmp dl, bl
je 0x4013c2
mov eax, str.Uninstall
lea ecx, [esp + 0x198]
push ecx
push eax
push str._s_cmd____s_n
call fcn.004032b0
lea edx, [esp + 0x3b4]
add esp, 0xc
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, ebx
test cl, cl
jne 0x4013e3
lea eax, [esp + 0x74]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4013f4
lea edi, [esp + 0x3a8]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x401405
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
lea edx, [esp + 0x3a8]
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
push edx
call esi
push 0x44
lea eax, [esp + 0x2c]
push 0
push eax
call fcn.00409780
add esp, 0xc
xor ecx, ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x2c]
push eax
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
mov word [esp + 0x78], cx
lea ecx, [esp + 0x1b8]
push ecx
push 0
mov dword [esp + 0x50], 0x44
mov dword [esp + 0x7c], ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test al, al
je 0x4014c6
mov edx, dword [esp + 0x1c]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push edx
call edi
mov eax, dword [esp + 0x18]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [esp + 0x18]
push eax
call edi
jmp 0x4014ce
mov cl, byte [esp + eax + 0x7c]
mov byte [esp + eax + 0x198], cl
add eax, ebx
test cl, cl
jne 0x4014b0
jmp 0x4013bd
mov dword [esp + 0x14], 0
push ebp
call esi
cmp dword [esp + 0x14], 0
je 0x4014fb
mov eax, str.Install
cmp byte [esp + 0x4c0], bl
je 0x4014eb
mov eax, str.Uninstall
push eax
push str.Filter_Driver__s_Fail_n
call fcn.004032b0
add esp, 8
jmp 0x401508
push str.Filter_Driver_OK_n
call fcn.004032b0
add esp, 4
mov ecx, dword [esp + 0x4b4]
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004071fc
add esp, 0x4ac
ret