Function at 0x4013e0
Capabilities:
Accept command line arguments

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
push edi
push str.wWinMain
push 0x40d2c4
call fcn.00401000
add esp, 8
lea eax, [esp + 0x14]
xor ebp, ebp
mov dword [esp + 0x14], ebp
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
mov dword [esp + 0x28], esi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor edi, edi
mov dword [esp + 0x24], eax
xor ebx, ebx
mov dword [esp + 0x18], edi
mov byte [esp + 0x13], 0
mov dword [esp + 0x1c], edi
mov byte [esp + 0x12], bl
cmp dword [esp + 0x14], ebx
jle 0x401534
mov edi, 1
push str.__install
push dword [esi]
mov dword [esp + 0x28], edi
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x401463
cmp edi, dword [esp + 0x14]
jge 0x401463
mov ebp, dword [esi + 4]
push str.__site
push dword [esi]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x401481
cmp edi, dword [esp + 0x14]
jge 0x401481
mov eax, dword [esi + 4]
mov dword [esp + 0x18], eax
push str.__kill
push dword [esi]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4014a0
mov byte [esp + 0x13], 1
cmp edi, dword [esp + 0x14]
jge 0x4014a0
mov ebp, dword [esi + 4]
push str.__all_users
push dword [esi]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov ecx, dword [esp + 0x1c]
test eax, eax
mov eax, 1
push str.__start
push dword [esi]
cmove ecx, eax
mov dword [esp + 0x24], ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
mov eax, dword [esp + 0x14]
jne 0x4014e7
cmp edi, eax
jge 0x40150d
mov ecx, dword [esi + 4]
mov dl, 1
mov dword [esp + 0x18], ecx
mov byte [esp + 0x12], dl
jmp 0x4014ef
mov ecx, dword [esp + 0x18]
mov dl, byte [esp + 0x12]
inc edi
add esi, 4
cmp dword [esp + 0x20], eax
jl 0x401445
test dl, dl
je 0x401530
test ecx, ecx
jne 0x401517
lea ebx, [ecx + 9]
jmp 0x40168e
mov ebx, 8
jmp 0x40168e
cmp dword [esp + 0x1c], ebx
setne al
movzx eax, al
push eax
push ecx
call fcn.00401290
add esp, 8
jmp 0x40168e
mov edi, dword [esp + 0x18]
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
je 0x40167c
push ebp
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
jne 0x40167c
push ebp
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
jne 0x40156d
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ebx, [esi + 2]
jmp 0x40168e
cmp byte [esp + 0x13], bl
je 0x4015aa
push str.Kill
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
jne 0x401594
push esi
lea ebx, [eax + 7]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x40168e
mov ecx, edi
call dword [0x40d160]
call edi
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x40168e
push str.InstallMessageHook
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebp, eax
test ebp, ebp
jne 0x4015cb
push esi
lea ebx, [eax + 3]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x40168e
push str.UnInstallMessageHook
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0x20], eax
test eax, eax
jne 0x4015ee
push esi
lea ebx, [eax + 5]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x40168e
push dword [esp + 0x1c]
mov ecx, ebp
push edi
push dword [esp + 0x2c]
call dword [0x40d160]
call ebp
add esp, 0xc
test eax, eax
jne 0x401614
push esi
lea ebx, [eax + 4]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x40168e
push 0
push 0
push 0
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jle 0x40165b
nop dword [eax]
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x2c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jg 0x401630
mov edi, dword [esp + 0x20]
mov ecx, edi
call dword [0x40d160]
call edi
test eax, eax
mov ecx, 6
cmove ebx, ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x40168e
push str.no_dll_path_given_n
call fcn.00401000
add esp, 4
mov ebx, 1
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40169d
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push str.wWinMain
push str._s_____n
call fcn.00401000
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret 0x10