Function at 0x401000
Capabilities:
Create process on windows
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x12d0
call fcn.00405bb0
mov eax, dword [0x422050]
xor eax, ebp
mov dword [ebp - 4], eax
call fcn.004014a0
test eax, eax
je 0x4010b2
call fcn.004015d0
test eax, eax
jne 0x4010b2
push 0x104
lea eax, [ebp - 0xd0c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x4010a8
push 0x3c
push 0
lea ecx, [ebp - 0x128c]
push ecx
call fcn.004066e0
add esp, 0xc
mov dword [ebp - 0x128c], 0x3c
mov dword [ebp - 0x1280], str.runas
lea edx, [ebp - 0xd0c]
mov dword [ebp - 0x127c], edx
mov dword [ebp - 0x1284], 0
mov dword [ebp - 0x1270], 1
lea eax, [ebp - 0x128c]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x4010a8
xor eax, eax
jmp 0x401490
mov eax, 1
jmp 0x401490
push 0x400
push 0
lea ecx, [ebp - 0x110c]
push ecx
call fcn.004066e0
add esp, 0xc
lea edx, [ebp - 0x110c]
push edx
push 0
push 0
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push 0x41b234
lea eax, [ebp - 0x110c]
push eax
call fcn.00407d24
add esp, 8
lea ecx, [ebp - 0x110c]
push ecx
call fcn.00401690
add esp, 4
mov edx, 2
imul eax, edx, 0
mov dword [ebp - 0x1238], eax
cmp dword [ebp - 0x1238], 0x200
jae 0x40111c
jmp 0x401121
call fcn.00405abe
xor ecx, ecx
mov edx, dword [ebp - 0x1238]
mov word [ebp + edx - 0x904], cx
push 0x100
lea eax, [ebp - 0x904]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ecx, 1
imul edx, ecx, 0
mov dword [ebp - 0x123c], edx
cmp dword [ebp - 0x123c], 0x100
jae 0x401161
jmp 0x401166
call fcn.00405abe
mov eax, dword [ebp - 0x123c]
mov byte [ebp + eax - 0x304], 0
push 0
push 0
push 0x100
lea ecx, [ebp - 0x304]
push ecx
push 0xffffffffffffffff
lea edx, [ebp - 0x904]
push edx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0x100
lea eax, [ebp - 0x204]
push eax
push 0x26
call fcn.00401da0
add esp, 0xc
push str.VueScan
lea ecx, [ebp - 0x204]
push ecx
call fcn.00407d70
add esp, 8
lea edx, [ebp - 0x204]
push edx
call fcn.00401bd0
add esp, 4
mov dword [ebp - 0x1240], 0xffffffff
lea eax, [ebp - 0x1240]
push eax
push 0x41b254
lea ecx, [ebp - 0x904]
push ecx
call fcn.00407f04
add esp, 8
push eax
call fcn.00402410
add esp, 8
mov dword [ebp - 0x1230], eax
cmp dword [ebp - 0x1230], 0
jne 0x401248
lea edx, [ebp - 0x304]
push edx
push 0x41b270
lea eax, [ebp - 0x504]
push eax
call fcn.00401750
add esp, 0xc
push 0
push 0x41b25c
lea ecx, [ebp - 0x504]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x401490
mov edx, 1
test edx, edx
je 0x4013a1
lea eax, [ebp - 0x122c]
push eax
mov ecx, dword [ebp - 0x1230]
push ecx
call fcn.00402660
add esp, 8
test eax, eax
je 0x401274
jmp 0x4013a1
lea edx, [ebp - 0x204]
push edx
lea eax, [ebp - 0x104]
push eax
call fcn.00407d60
add esp, 8
push 0x41b26c
lea ecx, [ebp - 0x104]
push ecx
call fcn.00407d70
add esp, 8
lea edx, [ebp - 0x120c]
push edx
lea eax, [ebp - 0x104]
push eax
call fcn.00407d70
add esp, 8
lea ecx, [ebp - 0x104]
push ecx
call fcn.00401b00
add esp, 4
push 0x41b2c0
lea edx, [ebp - 0x104]
push edx
call fcn.00401a10
add esp, 8
mov dword [ebp - 0x1234], eax
cmp dword [ebp - 0x1234], 0
jne 0x40131c
lea eax, [ebp - 0x104]
push eax
push str.Error_creating__s__possibly_a_file_protection_problem._nTry_deleting_this_folder_and_installing_again.
lea ecx, [ebp - 0x604]
push ecx
call fcn.00401750
add esp, 0xc
push 0
push 0x41b2c4
lea edx, [ebp - 0x604]
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x4013a1
mov eax, dword [ebp - 0x1234]
push eax
mov ecx, dword [ebp - 0x1230]
push ecx
call fcn.00402730
add esp, 8
test eax, eax
je 0x401378
lea edx, [ebp - 0x304]
push edx
push str.Error_reading__s__installation_file_corrupted._nPlease_download_VueScan_again.
lea eax, [ebp - 0x704]
push eax
call fcn.00401750
add esp, 0xc
push 0
push str.VueScan_Install
lea ecx, [ebp - 0x704]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov edx, dword [ebp - 0x1234]
push edx
call fcn.00407f91
add esp, 4
jmp 0x4013a1
mov eax, dword [ebp - 0x1234]
push eax
call fcn.00407f91
add esp, 4
mov ecx, dword [ebp - 0x1230]
push ecx
call fcn.00402be0
add esp, 4
test eax, eax
je 0x40139c
jmp 0x4013a1
jmp 0x401248
mov edx, dword [ebp - 0x1230]
push edx
call fcn.00402c50
add esp, 4
lea eax, [ebp - 0x204]
push eax
lea ecx, [ebp - 0x404]
push ecx
call fcn.00407d60
add esp, 8
push str._vuescan.exe
lea edx, [ebp - 0x404]
push edx
call fcn.00407d70
add esp, 8
push 0x100
lea eax, [ebp - 0xb04]
push eax
push 0xffffffffffffffff
lea ecx, [ebp - 0x404]
push ecx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 0x44
push 0
lea edx, [ebp - 0x12d0]
push edx
call fcn.004066e0
add esp, 0xc
push 0x10
push 0
lea eax, [ebp - 0x1250]
push eax
call fcn.004066e0
add esp, 0xc
mov dword [ebp - 0x12d0], 0x44
lea ecx, [ebp - 0x1250]
push ecx
lea edx, [ebp - 0x12d0]
push edx
push 0
push 0
push 0x20
push 0
push 0
push 0
push str.vuescan.exe__install
lea eax, [ebp - 0xb04]
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x40148e
cmp dword [ebp - 0x1250], 0
je 0x40148e
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x1250]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp - 0x1250]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x124c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00405b9a
mov esp, ebp
pop ebp
ret 0x10