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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41691c
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 0x4018a4
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.00401090
mov edi, eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], edi
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.00402010
mov edx, eax
cmp word [edx], 0
jne 0x40150d
xor ecx, ecx
jmp 0x401533
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 0x401520
sub ecx, dword [ebp - 0x15c]
sar ecx, 1
push ecx
push edx
call fcn.00401ab0
push edi
call fcn.004035d6
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 0x401696
cmp dword [ebp - 0x30], 0
je 0x401696
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
js 0x401696
cmp ecx, eax
jge 0x401696
sub esp, 0xc
lea ecx, [ebp - 0x34]
call fcn.00401f50
cmp eax, 0xffffffff
je 0x401696
cmp eax, 0x75
jne 0x4015cb
mov byte [ebp - 0x15f], 0
jmp 0x401580
cmp eax, 0x6c
jne 0x4015f1
push 0x41c88c
push dword [ebp - 0x28]
call fcn.00407d2a
add esp, 8
cmp eax, dword [0x420f5c]
je 0x401580
push ecx
push eax
call fcn.004021a0
jmp 0x401580
cmp eax, 0x64
jne 0x401605
push pe_nt_image_headers32
push dword [ebp - 0x28]
push 0x41fb28
jmp 0x40163f
cmp eax, 0x70
jne 0x401619
push pe_nt_image_headers32
push dword [ebp - 0x28]
push str.Wondershare_PDFelement
jmp 0x40163f
cmp eax, 0x6d
jne 0x40162d
push pe_nt_image_headers32
push dword [ebp - 0x28]
push str.Wondershare_PDFelement_Monitor
jmp 0x40163f
cmp eax, 0x72
jne 0x401655
push pe_nt_image_headers32
push dword [ebp - 0x28]
push str.Wondershare_PDFelement_Port
call fcn.00407c26
add esp, 0xc
xor ecx, ecx
mov word [eax + 0x1fe], cx
jmp 0x401580
cmp eax, 0x66
jne 0x401670
mov edx, dword [ebp - 0x28]
push ecx
mov ecx, str.WSMonEditor.dll
call fcn.00401070
add esp, 4
jmp 0x401580
cmp eax, 0x63
jne 0x401681
mov byte [ebp - 0x15d], 1
jmp 0x401580
cmp eax, 0x65
jne 0x401580
mov byte [ebp - 0x15e], 1
jmp 0x401580
mov al, byte [ebp - 0x15e]
test al, al
je 0x401738
push pe_nt_image_headers32
push 0x41c890
push 0x41fb28
call fcn.00407c26
push pe_nt_image_headers32
xor ecx, ecx
push 0x41c890
push str.Wondershare_PDFelement
mov word [eax + 0x1fe], cx
call fcn.00407c26
push pe_nt_image_headers32
xor ecx, ecx
push 0x41c890
push str.Wondershare_PDFelement_Monitor
mov word [eax + 0x1fe], cx
call fcn.00407c26
push pe_nt_image_headers32
xor ecx, ecx
push 0x41c8c0
push str.Wondershare_PDFelement_Port
mov word [eax + 0x1fe], cx
call fcn.00407c26
push pe_nt_image_headers32
xor ecx, ecx
push 0x41c8f8
push str.WSMonEditor.dll
mov word [eax + 0x1fe], cx
call fcn.00407c26
add esp, 0x3c
xor ecx, ecx
mov word [eax + 0x1fe], cx
cmp byte [ebp - 0x15d], 0
je 0x4017a1
cmp dword [0x420f5c], 0
jne 0x4017a1
call dword [sym.imp.KERNEL32.dll_AllocConsole]
neg eax
push 1
sbb al, al
and byte [ebp - 0x15d], al
call fcn.00406759
push eax
push 0x41c918
push str.CONOUT_
call fcn.00406669
push 2
call fcn.00406759
push eax
push 0x41c918
push str.CONOUT_
call fcn.00406669
push 2
call fcn.00406759
add esp, 0x24
cmp eax, dword [0x420f5c]
je 0x4017a1
push ecx
push eax
call fcn.004021a0
lea eax, [ebp - 0x158]
mov dword [ebp - 0x158], 0x114
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4017d2
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 0x4017fd
push dword [0x420f50]
push dword [0x420f54]
push str.__INF___X64_V_d._d_n
jmp 0x40182a
test eax, eax
jne 0x401814
push dword [0x420f50]
push dword [0x420f54]
push str.__INF___X86_V_d._d_n
jmp 0x40182a
cmp eax, 0xc
jne 0x401832
push dword [0x420f50]
push dword [0x420f54]
push str.__INF___ARM64_V_d._d_n
call fcn.00401130
add esp, 0xc
push str.Wondershare_PDFelement_Monitor
push str.__INF___Monitor_Name___s__n
call fcn.00401130
push str.Wondershare_PDFelement_Port
push str.__INF___Monitor_Port___s__n
call fcn.00401130
push str.WSMonEditor.dll
push str.__INF___Monitor_File___s__n
call fcn.00401130
push 0x41fb28
push str.__INF___Driver__Name___s__n
call fcn.00401130
push str.Wondershare_PDFelement
push str.__INF___Printer_Name___s__n
call fcn.00401130
mov eax, dword [0x420f54]
add esp, 0x28
cmp eax, 5
jae 0x4018ac
mov ecx, dword [0x420f50]
cmp ecx, 1
jae 0x4018ac
push ecx
push eax
push str.__ERR___Operation_system_version__V_d._d__too_low._n
call fcn.00401130
add esp, 0xc
or eax, 0xffffffff
jmp 0x401a21
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 0x40191f
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x15c], eax
test eax, eax
je 0x40191f
push 0xc
call fcn.004035db
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], 0x41cf14
mov dword [esi + 4], ecx
mov dword [esi + 8], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40191f
push edi
call eax
mov al, byte [ebp - 0x15f]
test al, al
je 0x40194f
push str.__MSG___Install_Monitor_Start_..._n
call fcn.00401130
add esp, 4
call fcn.00402680
push str.__MSG___Install_Virtual_Printer_Start_..._n
call fcn.00401130
add esp, 4
call fcn.00402cf0
jmp 0x401973
push str.__MSG___Uninstall_Virtual_Printer_Start_..._n
call fcn.00401130
add esp, 4
call fcn.004032b0
push str.__MSG___Uninstall_Monitor_Start_..._n
call fcn.00401130
add esp, 4
call fcn.00402880
mov byte [ebp - 4], 4
test esi, esi
je 0x401a05
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
jmp 0x401a05
cmp byte [ebp - 0x15d], 0
je 0x401a1f
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.004035c5
mov esp, ebp
pop ebp
ret 0x10