Function at 0x408740
Capabilities:
Accept command line arguments
Acquire debug privileges
Check os version
Get hostname

Disassembly:
sub esp, 0x248
mov eax, dword [0x43d68c]
xor eax, esp
mov dword [esp + 0x244], eax
mov eax, dword [esp + 0x24c]
push ebx
push esi
mov esi, dword [esp + 0x25c]
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], esi
xor bl, bl
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
push eax
lea edx, [esp + 0x20]
push edx
push str.DbgView
call fcn.0040b400
add esp, 0xc
test eax, eax
jne 0x4087a1
mov eax, 1
jmp 0x408c90
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
movzx ecx, al
setb al
mov byte [0x450df8], al
test al, al
je 0x4087db
cmp ecx, 5
jae 0x4087e0
push 0x10
push 0x4346e4
push str.DebugView_requires_Windows_2000_or_higher
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x408c90
cmp ecx, 5
jb 0x4087e7
mov byte [0x449738], 1
cmp ecx, 6
jb 0x4087f3
mov byte [0x449854], 1
test al, al
je 0x40880d
push str.SeDebugPrivilege
call fcn.0040a560
add esp, 4
test eax, eax
jne 0x40880d
mov byte [0x43d376], al
push 0x435d40
push esi
call fcn.00412e70
add esp, 8
test eax, eax
je 0x40882b
call fcn.00405c30
xor eax, eax
jmp 0x408c90
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
cmp byte [esi], 0x22
jne 0x40883b
inc esi
mov bl, 1
mov al, byte [esi]
push edi
xor edi, edi
test al, al
je 0x40886a
test bl, bl
jne 0x408858
movsx eax, al
push eax
call fcn.00413d4f
add esp, 4
test eax, eax
jne 0x40886a
mov al, byte [esi]
cmp al, 0x22
je 0x40886a
inc esi
mov byte [esp + edi + 0x48], al
mov al, byte [esi]
inc edi
test al, al
jne 0x408844
lea ecx, [esp + 0x48]
push 0x5c
push ecx
mov byte [esp + edi + 0x50], 0
call fcn.004144b0
add esp, 8
test eax, eax
jne 0x408893
push 0x104
lea edx, [esp + 0x4c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x44]
push eax
push 0x449100
push 0x104
lea ecx, [esp + 0x54]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov eax, dword [esp + 0x44]
test eax, eax
je 0x4088b8
mov byte [eax], 0
push ebp
call fcn.00401830
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ebp, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [0x44a8a8], eax
test eax, eax
je 0x4088e7
push str.Wow64EnableWow64FsRedirection
push str.kernel32.dll
call ebp
push eax
call edi
mov dword [0x440bf4], eax
mov esi, dword [esp + 0x14]
push 0x435d1c
push esi
call fcn.00412e70
add esp, 8
test eax, eax
jne 0x40890f
push 0x435d18
push esi
call fcn.00412e70
add esp, 8
test eax, eax
je 0x40893b
push 0xa
inc eax
push str.accepteula
push eax
call fcn.00414367
add esp, 0xc
test eax, eax
je 0x40893b
mov edx, dword [esp + 0x10]
push 5
push esi
push edx
call fcn.0040a310
add esp, 0xc
xor eax, eax
jmp 0x408c8e
call fcn.00401d40
lea eax, [esp + 0x150]
push eax
push esi
call fcn.00405c50
add esp, 8
test al, al
je 0x408934
mov ebx, dword [esp + 0x10]
push ebx
call fcn.00408690
add esp, 4
test eax, eax
je 0x408934
push 0
push str.dbgviewClass
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x408998
cmp dword [0x45350c], 0
mov byte [0x43d364], 0
je 0x408998
mov eax, 0x14
add dword [0x453508], eax
add dword [0x453504], eax
lea ecx, [esp + 0x20]
push ecx
push 0x450e00
mov dword [esp + 0x28], 0x101
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
push 0xdc0
push 0
push 0x450020
call fcn.00412880
mov esi, dword [sym.imp.KERNEL32.dll_CreateEventA]
add esp, 0xc
push 0
push 0
push 1
push 0
call esi
push 0
push 0
push 0
push 0
mov dword [0x4534e0], eax
call esi
push str.ProcessIdToSessionId
push str.Kernel32.DLL
mov dword [0x452320], eax
call ebp
push eax
call edi
mov esi, eax
test esi, esi
je 0x408a1d
lea edx, [esp + 0x44]
push edx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
call esi
test eax, eax
je 0x408a1d
cmp dword [esp + 0x44], 0
je 0x408a1d
mov byte [0x440bf1], 1
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov eax, dword [esp + 0x268]
push eax
push ebx
call fcn.004061e0
mov ebp, eax
add esp, 8
mov dword [esp + 0x10], ebp
test ebp, ebp
je 0x408934
cmp byte [esp + 0x150], 0
je 0x408a66
mov edx, dword [0x450024]
lea ecx, [esp + 0x150]
push ecx
push edx
push 0
push ebp
call fcn.00410e60
add esp, 0x10
push str.ACCELERATORS
push ebx
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov ebx, eax
push str.commdlg_FindReplace
mov dword [esp + 0x18], ebx
call dword [sym.imp.USER32.dll_RegisterWindowMessageA]
cmp byte [0x450df8], 0
mov dword [0x450df0], eax
je 0x408bfe
mov edi, dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x408aa0
push 1
push 0
push 0
push 0
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x408b44
cmp dword [esp + 0x2c], 0x12
je 0x408bf4
lea ecx, [esp + 0x28]
push ecx
push ebx
push ebp
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x408aa0
mov edx, dword [0x440bf8]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x408afe
mov ecx, dword [0x440bf8]
lea eax, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x408aa0
mov edx, dword [0x440bfc]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x408b29
mov ecx, dword [0x440bfc]
lea eax, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x408aa0
lea edx, [esp + 0x28]
push edx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x408aa0
cmp byte [0x43d364], 0
je 0x408bdd
mov al, byte [0x450142]
mov cl, byte [0x450143]
test al, al
jne 0x408b64
test cl, cl
je 0x408bdd
xor esi, esi
test al, al
je 0x408b79
mov edx, dword [0x44e3a8]
mov dword [esp + 0x18], edx
mov esi, 1
test cl, cl
je 0x408b87
mov eax, dword [0x44e3ac]
mov dword [esp + esi*4 + 0x18], eax
inc esi
push 0xff
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x24]
push ecx
push esi
call edi
test eax, eax
jne 0x408bbb
mov edx, dword [esp + 0x18]
cmp edx, dword [0x44e3a8]
push eax
setne al
movzx ecx, al
push ecx
call fcn.00402f10
add esp, 8
jmp 0x408aa0
cmp esi, 2
jne 0x408aa0
cmp eax, 1
jne 0x408aa0
push 0
push eax
call fcn.00402f10
add esp, 8
jmp 0x408aa0
push 0x1ff
push 0xffffffffffffffff
push 0
lea edx, [esp + 0x24]
push edx
push 0
call edi
jmp 0x408aa0
mov eax, 1
jmp 0x408c8e
mov ebx, dword [sym.imp.USER32.dll_GetMessageA]
push 0
push 0
push 0
lea eax, [esp + 0x34]
push eax
call ebx
test eax, eax
je 0x408c8a
mov esi, dword [sym.imp.USER32.dll_TranslateAcceleratorA]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x408c30
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x28]
push ecx
push edx
push eax
call esi
test eax, eax
jne 0x408c79
mov ecx, dword [0x440bf8]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x408c6b
mov eax, dword [0x440bf8]
lea edx, [esp + 0x28]
push edx
push eax
call dword [sym.imp.USER32.dll_IsDialogMessageA]
test eax, eax
jne 0x408c79
lea ecx, [esp + 0x28]
push ecx
call edi
lea edx, [esp + 0x28]
push edx
call ebp
push 0
push 0
push 0
lea eax, [esp + 0x34]
push eax
call ebx
test eax, eax
jne 0x408c30
mov eax, dword [esp + 0x30]
pop ebp
pop edi
mov ecx, dword [esp + 0x24c]
pop esi
pop ebx
xor ecx, esp
call fcn.004126a4
add esp, 0x248
ret 0x10