Function at 0x401450
Capabilities:
Accept command line arguments
Check os version
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41689c
mov eax, dword fs:[0]
push eax
sub esp, 0x158
mov eax, dword [0x41f008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
test esi, esi
je 0x40186c
mov ecx, dword [esi]
xor al, al
xorps xmm0, xmm0
mov byte [ebp - 0x15e], al
mov byte [ebp - 0x15f], 1
mov byte [ebp - 0x15d], al
movq qword [ebp - 0x1c], xmm0
call fcn.00401070
mov edi, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], edi
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.00401fe0
mov edx, eax
cmp word [edx], 0
jne 0x4014ed
xor ecx, ecx
jmp 0x401513
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x15c], eax
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x401500
sub ecx, dword [ebp - 0x15c]
sar ecx, 1
push ecx
push edx
call fcn.00401a80
push edi
call fcn.00403556
add esp, 4
mov dword [ebp - 4], 0xffffffff
xorps xmm0, xmm0
mov eax, dword [ebp - 0x20]
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
nop word [eax + eax]
mov eax, dword [ebp - 0x34]
cmp eax, 2
jl 0x401676
cmp dword [ebp - 0x30], 0
je 0x401676
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
js 0x401676
cmp ecx, eax
jge 0x401676
sub esp, 0xc
lea ecx, [ebp - 0x34]
call fcn.00401f20
cmp eax, 0xffffffff
je 0x401676
cmp eax, 0x75
jne 0x4015ab
mov byte [ebp - 0x15f], 0
jmp 0x401560
cmp eax, 0x6c
jne 0x4015d1
push 0x41c88c
push dword [ebp - 0x28]
call fcn.00407c6a
add esp, 8
cmp eax, dword [0x420f5c]
je 0x401560
push ecx
push eax
call fcn.00402170
jmp 0x401560
cmp eax, 0x64
jne 0x4015e5
push pe_nt_image_headers32
push dword [ebp - 0x28]
push 0x41fb28
jmp 0x40161f
cmp eax, 0x70
jne 0x4015f9
push pe_nt_image_headers32
push dword [ebp - 0x28]
push str.Wondershare_PDFelement
jmp 0x40161f
cmp eax, 0x6d
jne 0x40160d
push pe_nt_image_headers32
push dword [ebp - 0x28]
push str.Wondershare_PDFelement_Monitor
jmp 0x40161f
cmp eax, 0x72
jne 0x401635
push pe_nt_image_headers32
push dword [ebp - 0x28]
push str.Wondershare_PDFelement_Port
call fcn.00407b66
add esp, 0xc
xor ecx, ecx
mov word [eax + 0x1fe], cx
jmp 0x401560
cmp eax, 0x66
jne 0x401650
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, str.WSMonEditor.dll
call fcn.00401050
add esp, 4
jmp 0x401560
cmp eax, 0x63
jne 0x401661
mov byte [ebp - 0x15d], 1
jmp 0x401560
cmp eax, 0x65
jne 0x401560
mov byte [ebp - 0x15e], 1
jmp 0x401560
mov al, byte [ebp - 0x15e]
test al, al
je 0x401718
push pe_nt_image_headers32
push 0x41c890
push 0x41fb28
call fcn.00407b66
push pe_nt_image_headers32
xor ecx, ecx
push 0x41c890
push str.Wondershare_PDFelement
mov word [eax + 0x1fe], cx
call fcn.00407b66
push pe_nt_image_headers32
xor ecx, ecx
push 0x41c890
push str.Wondershare_PDFelement_Monitor
mov word [eax + 0x1fe], cx
call fcn.00407b66
push pe_nt_image_headers32
xor ecx, ecx
push 0x41c8c0
push str.Wondershare_PDFelement_Port
mov word [eax + 0x1fe], cx
call fcn.00407b66
push pe_nt_image_headers32
xor ecx, ecx
push 0x41c8f8
push str.WSMonEditor.dll
mov word [eax + 0x1fe], cx
call fcn.00407b66
add esp, 0x3c
xor ecx, ecx
mov word [eax + 0x1fe], cx
cmp byte [ebp - 0x15d], 0
je 0x401781
cmp dword [0x420f5c], 0
jne 0x401781
call dword [sym.imp.KERNEL32.dll_AllocConsole]
neg eax
push 1
sbb al, al
and byte [ebp - 0x15d], al
call fcn.00406699
push eax
push 0x41c918
push str.CONOUT_
call fcn.004065a9
push 2
call fcn.00406699
push eax
push 0x41c918
push str.CONOUT_
call fcn.004065a9
push 2
call fcn.00406699
add esp, 0x24
cmp eax, dword [0x420f5c]
je 0x401781
push ecx
push eax
call fcn.00402170
lea eax, [ebp - 0x158]
mov dword [ebp - 0x158], 0x114
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4017b2
mov eax, dword [ebp - 0x154]
mov dword [0x420f54], eax
mov eax, dword [ebp - 0x150]
mov dword [0x420f50], eax
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
movzx eax, word [ebp - 0x44]
mov dword [0x420f58], eax
cmp eax, 9
jne 0x4017dd
push dword [0x420f50]
push dword [0x420f54]
push str.__INF___X64_V_d._d_n
jmp 0x4017f2
test eax, eax
jne 0x4017fa
push dword [0x420f50]
push dword [0x420f54]
push str.__INF___X86_V_d._d_n
call fcn.00401110
add esp, 0xc
push str.Wondershare_PDFelement_Monitor
push str.__INF___Monitor_Name___s__n
call fcn.00401110
push str.Wondershare_PDFelement_Port
push str.__INF___Monitor_Port___s__n
call fcn.00401110
push str.WSMonEditor.dll
push str.__INF___Monitor_File___s__n
call fcn.00401110
push 0x41fb28
push str.__INF___Driver__Name___s__n
call fcn.00401110
push str.Wondershare_PDFelement
push str.__INF___Printer_Name___s__n
call fcn.00401110
mov eax, dword [0x420f54]
add esp, 0x28
cmp eax, 5
jae 0x401874
mov ecx, dword [0x420f50]
cmp ecx, 1
jae 0x401874
push ecx
push eax
push str.__ERR___Operation_system_version__V_d._d__too_low._n
call fcn.00401110
add esp, 0xc
or eax, 0xffffffff
jmp 0x4019e9
xor esi, esi
mov dword [ebp - 4], 2
xor edi, edi
mov dword [ebp - 0x18], esi
mov byte [ebp - 4], 3
cmp dword [0x420f58], 9
jne 0x4018e7
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x15c], eax
test eax, eax
je 0x4018e7
push 0xc
call fcn.0040355b
mov ecx, dword [ebp - 0x15c]
mov esi, eax
mov eax, dword [sym.imp.KERNEL32.dll_FreeLibrary]
add esp, 4
xorps xmm0, xmm0
mov dword [ebp - 0x18], esi
movq qword [esi], xmm0
mov dword [esi + 8], edi
push str.Wow64EnableWow64FsRedirection
push ecx
mov dword [esi], 0x41ccfc
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4018e7
push edi
call eax
mov al, byte [ebp - 0x15f]
test al, al
je 0x401917
push str.__MSG___Install_Monitor_Start_..._n
call fcn.00401110
add esp, 4
call fcn.00402650
push str.__MSG___Install_Virtual_Printer_Start_..._n
call fcn.00401110
add esp, 4
call fcn.00402cb0
jmp 0x40193b
push str.__MSG___Uninstall_Virtual_Printer_Start_..._n
call fcn.00401110
add esp, 4
call fcn.00403230
push str.__MSG___Uninstall_Monitor_Start_..._n
call fcn.00401110
add esp, 4
call fcn.00402840
mov byte [ebp - 4], 4
test esi, esi
je 0x4019cd
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
jmp 0x4019cd
cmp byte [ebp - 0x15d], 0
je 0x4019e7
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_FreeConsole]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00403545
mov esp, ebp
pop ebp
ret 0x10