Function at 0x402540
Capabilities:
Accept command line arguments
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40eaa7
mov eax, dword fs:[0]
push eax
sub esp, 0x938
mov eax, dword [0x41500c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 2
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 2
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
call fcn.00402860
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
sub esp, 0xc
call fcn.004075a0
push ecx
push str.wWinMain_Start
push 0
call fcn.004071a0
mov ecx, eax
call fcn.0040a8f0
lea eax, [ebp - 0x128]
mov dword [ebp - 0x128], 0x114
push eax
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x4025e2
mov edi, dword [ebp - 0x120]
mov esi, dword [ebp - 0x124]
jmp 0x4025e4
xor esi, esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push edi
mov ebx, eax
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [ebp - 0x930]
push str.YunUtilityService_pid_u__cmdline_s__osver_d._d
push eax
call fcn.004074f0
add esp, 0x14
push dword [eax]
push 0
call fcn.004071a0
mov ecx, eax
call fcn.0040a8f0
mov eax, dword [ebp - 0x930]
lea ecx, [ebp - 0x928]
cmp eax, ecx
je 0x402633
push eax
call fcn.0040dca4
add esp, 4
cmp esi, 6
jge 0x402681
push edi
push esi
lea eax, [ebp - 0x930]
push str.operate_system_ver:_d._d__no_need_run_this_app
push eax
call fcn.004074f0
add esp, 0xc
push dword [eax]
push 0
call fcn.004071a0
mov ecx, eax
call fcn.0040a8f0
mov eax, dword [ebp - 0x930]
lea ecx, [ebp - 0x928]
cmp eax, ecx
je 0x402677
push eax
call fcn.0040dca4
add esp, 4
mov esi, 1
jmp 0x402788
call fcn.0040a080
test al, al
jne 0x4026a8
push ecx
push str.no_privilege
push 2
call fcn.004071a0
mov ecx, eax
call fcn.0040a8f0
mov esi, 2
jmp 0x402788
mov dword [ebp - 0x944], 0
mov dword [ebp - 0x940], 0
call fcn.004035f0
push ebx
lea ecx, [ebp - 0x944]
mov dword [ebp - 0x944], eax
mov dword [ebp - 0x93c], 0
mov dword [ebp - 0x938], 0
mov dword [ebp - 0x934], 0
call fcn.00401f60
call fcn.00409fa0
push ecx
test eax, eax
jne 0x402716
push str.run_as_service
push eax
call fcn.004071a0
mov ecx, eax
call fcn.0040a8f0
call fcn.00409e50
xor esi, esi
jmp 0x40277d
push str.install
lea ecx, [ebp - 0x944]
call fcn.00402490
test al, al
je 0x40273f
call fcn.00409b60
call fcn.00409390
test eax, eax
jns 0x402712
mov esi, 4
jmp 0x40277d
push ecx
push str.uninstall
lea ecx, [ebp - 0x944]
call fcn.00402490
test al, al
je 0x402764
call fcn.00409b60
test eax, eax
jns 0x402712
mov esi, 5
jmp 0x40277d
push ecx
push str.wrong_param
push 2
call fcn.004071a0
mov ecx, eax
call fcn.0040a8f0
mov esi, 3
lea ecx, [ebp - 0x944]
call fcn.004027e0
push ecx
push str.wWinMain_End
push 0
mov dword [ebp - 4], 5
call fcn.004071a0
mov ecx, eax
call fcn.0040a8f0
mov ecx, 0x41583c
call fcn.00407740
call dword [sym.imp.ole32.dll_OleUninitialize]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040d7a5
mov esp, ebp
pop ebp
ret 0x10