Function at 0x404888
Capabilities:
Accept command line arguments
Check for time delay via queryperformancecounter

Disassembly:
push 0x2f0
mov eax, 0x455076
call fcn.004362b3
xor ebx, ebx
lea ecx, [ebp - 0x2c0]
mov dword [ebp - 4], ebx
call fcn.004025c8
xor eax, eax
mov byte [ebp - 0x2c1], bl
inc eax
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], al
push 9
push 0x466a24
mov dword [ebp - 0x23c], ebx
mov dword [ebp - 0x238], 0xf
mov byte [ebp - 0x24c], bl
call fcn.00407ec0
lea eax, [ebp - 0x2e0]
mov dword [ebp - 0x2e0], ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov esi, eax
mov dword [ebp - 0x2d8], esi
mov dword [ebp - 0x2e8], esi
mov byte [ebp - 4], 4
cmp dword [ebp - 0x2e0], 2
jne 0x404ae6
push str.__shutdown
push dword [esi + 4]
call fcn.0043a688
pop ecx
pop ecx
test eax, eax
jne 0x404977
lea ecx, [ebp - 0x2c0]
call fcn.0040299c
mov edi, eax
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0x24c]
call fcn.00407dc4
cmp dword [ebp - 0x2b8], 0
je 0x40495b
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2bc], 0
je 0x404970
push dword [ebp - 0x2bc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
jmp 0x404cf7
push str.__recover
push dword [esi + 4]
call fcn.0043a688
pop ecx
pop ecx
test eax, eax
jne 0x4049e3
mov byte [ebp - 0x2c1], 1
cmp dword [ebp - 0x2b8], 0
je 0x4049ac
push str.Startup_requested.
push 0x49
lea ecx, [ebp - 0x2c0]
call fcn.00402891
lea ecx, [ebp - 0x2c0]
call fcn.00404856
test al, al
je 0x404b51
cmp dword [ebp - 0x2b8], 0
je 0x4051d5
push str.GFE_is_in_Standby_Mode__not_launching.
push 0x45
lea ecx, [ebp - 0x2c0]
call fcn.00402891
jmp 0x4051d5
push dword [esi + 4]
lea ecx, [ebp - 0x264]
call fcn.004059e5
mov ecx, eax
cmp dword [eax + 0x14], 8
jb 0x4049fb
mov ecx, dword [eax]
mov edx, dword [eax + 0x10]
push 0xb
push str.__launcher
push ecx
call fcn.004096e6
add esp, 0xc
lea ecx, [ebp - 0x264]
mov edi, eax
call fcn.00407c3e
test edi, edi
jne 0x404ac9
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x234]
add eax, 0x16
push eax
call fcn.004059e5
mov byte [ebp - 4], 5
cmp dword [ebp - 0x224], edi
je 0x404ab5
lea ecx, [ebp - 0x2b4]
call fcn.0040543a
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x234]
cmp dword [ebp - 0x220], 8
mov eax, dword [ebp - 0x224]
cmovae ecx, dword [ebp - 0x234]
lea eax, [ecx + eax*2]
push eax
push ecx
lea eax, [ebp - 0x264]
push eax
lea ecx, [ebp - 0x2b4]
call fcn.004072b8
mov byte [ebp - 0x2d4], bl
lea eax, [ebp - 0x264]
push dword [ebp - 0x2d4]
lea ecx, [ebp - 0x24c]
push eax
call fcn.0040802c
lea ecx, [ebp - 0x264]
call fcn.00407dc4
lea ecx, [ebp - 0x2b4]
call fcn.00405418
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 4
call fcn.00407c3e
jmp 0x404991
cmp dword [ebp - 0x2b8], 0
je 0x404b0b
push str.Unknown_command_line_argument
push 0x45
lea ecx, [ebp - 0x2c0]
call fcn.00402891
jmp 0x404b0b
jle 0x404991
cmp dword [ebp - 0x2b8], 0
je 0x404b07
push str.Too_many_command_line_arguments
push 0x45
lea ecx, [ebp - 0x2c0]
call fcn.00402891
test esi, esi
je 0x404b12
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0x24c]
call fcn.00407dc4
cmp dword [ebp - 0x2b8], 0
je 0x404b32
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2bc], 0
je 0x404b47
push dword [ebp - 0x2bc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x80070057
jmp 0x404cf7
lea eax, [ebp - 0x2f0]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call fcn.00402927
mov edi, eax
mov dword [ebp - 0x2cc], edi
test edi, edi
jne 0x404bd1
cmp dword [ebp - 0x2b8], eax
je 0x404b89
push str.Node_is_already_running
push 0x49
lea ecx, [ebp - 0x2c0]
call fcn.00402891
test esi, esi
je 0x404b94
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0x24c]
call fcn.00407dc4
cmp dword [ebp - 0x2b8], 0
je 0x404bb4
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2bc], 0
je 0x404bc9
push dword [ebp - 0x2bc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
inc eax
jmp 0x404cf7
jns 0x404bf6
cmp dword [ebp - 0x2b8], 0
je 0x404bee
push str.Failed_to_check_event
push 0x45
lea ecx, [ebp - 0x2c0]
call fcn.00402891
lfence
jmp 0x404c7a
mov edi, ebx
mov dword [ebp - 0x2d8], ebx
mov dword [ebp - 0x2d4], edi
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x2cc]
cmp eax, 2
je 0x404e2c
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x208
mov edi, eax
lea eax, [ebp - 0x21c]
push ebx
push eax
call fcn.00437bd0
add esp, 0xc
lea eax, [ebp - 0x21c]
push 0x104
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x404c87
cmp dword [ebp - 0x2b8], eax
je 0x404c66
push str.GetModuleFileName_failed
push 0x45
lea ecx, [ebp - 0x2c0]
call fcn.00402891
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
test esi, esi
je 0x40493b
jmp 0x404934
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
jne 0x404cff
cmp dword [ebp - 0x2b8], eax
je 0x404cb2
push str.PathRemoveFileSpec_failed
push 0x45
lea ecx, [ebp - 0x2c0]
call fcn.00402891
test esi, esi
je 0x404cbd
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0x24c]
call fcn.00407dc4
cmp dword [ebp - 0x2b8], 0
je 0x404cdd
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2bc], 0
je 0x404cf2
push dword [ebp - 0x2bc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x8000ffff
call fcn.00436200
ret 0x10
cmp dword [ebp - 0x2b8], 0
je 0x404d1a
push str.Starting_node_process...
push 0x49
lea ecx, [ebp - 0x2c0]
call fcn.00402891
push 7
pop edi
xor eax, eax
mov dword [ebp - 0x2c8], ebx
push str.index.js
lea ecx, [ebp - 0x234]
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x220], edi
mov word [ebp - 0x234], ax
call fcn.00407cbb
cmp byte [ebp - 0x2c1], 0
mov byte [ebp - 4], 8
je 0x404d65
push str._recover
lea ecx, [ebp - 0x234]
call fcn.00407d34
xor eax, eax
mov dword [ebp - 0x254], ebx
mov word [ebp - 0x264], ax
lea ecx, [ebp - 0x264]
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x250], edi
push eax
call fcn.00407cbb
lea eax, [ebp - 0x2c8]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x234]
push eax
lea edx, [ebp - 0x264]
lea ecx, [ebp - 0x2c0]
call fcn.0040395b
pop ecx
pop ecx
lea ecx, [ebp - 0x264]
mov byte [ebp - 4], 8
mov edi, eax
call fcn.00407c3e
test edi, edi
jns 0x404df4
cmp dword [ebp - 0x2b8], 0
je 0x404de1
push str.CreateNodeProcess_failed
push 0x45
lea ecx, [ebp - 0x2c0]
call fcn.00402891
lea ecx, [ebp - 0x234]
lfence
call fcn.00407c3e
jmp 0x404c7a
cmp dword [ebp - 0x2b8], 0
mov edi, dword [ebp - 0x2c8]
mov dword [ebp - 0x2d4], edi
je 0x404e1b
push str.Process_created__waiting_for_initialization.
push 0x49
lea ecx, [ebp - 0x2c0]
call fcn.00402891
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 7
call fcn.00407c3e
jmp 0x404e47
cmp dword [ebp - 0x2b8], 0
je 0x404e4d
push str.Event_exists__this_means_that_process_is_already_running.
push 0x49
lea ecx, [ebp - 0x2c0]
call fcn.00402891
mov eax, dword [ebp - 0x2cc]
cmp eax, 2
mov byte [ebp - 0x2c1], bl
mov eax, ebx
mov dword [ebp - 0x2e4], 0xa
sete byte [ebp - 0x2c8]
mov dword [ebp - 0x2cc], eax
cmp eax, 0x5dc0
jae 0x4052c9
call fcn.00402927
mov dword [ebp - 0x2d8], eax
test eax, eax
jne 0x4050fb
lea eax, [ebp - 0x2d0]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [ebp - 0x2dc]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov eax, dword [ebp - 0x2dc]
or eax, dword [ebp - 0x2d8]
je 0x404ef5
mov ecx, dword [ebp - 0x2d0]
sub ecx, dword [ebp - 0x2f0]
mov eax, dword [ebp - 0x2cc]
sbb eax, dword [ebp - 0x2ec]
push ebx
push 0x3e8
push eax
push ecx
call fcn.00436300
push dword [ebp - 0x2d8]
push dword [ebp - 0x2dc]
push edx
push eax
call fcn.00454260
mov dword [ebp - 0x2c8], eax
jmp 0x404efd
mov eax, ebx
mov dword [ebp - 0x2c8], ebx
lea ecx, [ebp - 0x21f]
xor edx, edx
dec ecx
div dword [ebp - 0x2e4]
add dl, 0x30
mov byte [ecx], dl
test eax, eax
jne 0x404f03
lea eax, [ebp - 0x21f]
mov dword [ebp - 0x254], ebx
mov dword [ebp - 0x250], 0xf
mov byte [ebp - 0x264], bl
cmp ecx, eax
je 0x404f44
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x264]
call fcn.00407ec0
push 0xa
pop eax
push 0xd
push str.Launch_time:
push ecx
lea ecx, [ebp - 0x264]
mov byte [ebp - 4], al
call fcn.0040a2d3
push eax
lea ecx, [ebp - 0x234]
call fcn.00405acc
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x234]
cmp dword [ebp - 0x220], 0x10
cmovae eax, dword [ebp - 0x234]
cmp dword [ebp - 0x2b8], 0
je 0x404f98
push eax
push 0x49
lea ecx, [ebp - 0x2c0]
call fcn.00402891
lea ecx, [ebp - 0x234]
call fcn.00407dc4
lea ecx, [ebp - 0x264]
call fcn.00407dc4
mov byte [ebp - 4], 0xc
lea edx, [ebp - 0x24c]
mov ecx, dword [ebp - 0x2c8]
call fcn.00403e3f
mov dword [ebp - 4], 7
jmp 0x40508e
cmp dword [ebp - 0x2b8], 0
je 0x4050a9
push str.Initialized__returning_S_OK
push 0x49
lea ecx, [ebp - 0x2c0]
call fcn.00402891
test edi, edi
je 0x4050b4
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x4050bf
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0x24c]
call fcn.00407dc4
cmp dword [ebp - 0x2b8], 0
je 0x4050df
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2bc], 0
je 0x4050f4
push dword [ebp - 0x2bc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x404cf7
jns 0x405171
cmp dword [ebp - 0x2b8], 0
je 0x405118
push str.CheckEvent_failed
push 0x45
lea ecx, [ebp - 0x2c0]
call fcn.00402891
lfence
test edi, edi
je 0x405126
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x405131
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0x24c]
call fcn.00407dc4
cmp dword [ebp - 0x2b8], 0
je 0x405151
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2bc], 0
je 0x405166
push dword [ebp - 0x2bc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x2d8]
jmp 0x404cf7
mov ecx, dword [ebp - 0x2c8]
cmp eax, 2
push 1
pop edx
movzx ecx, cl
cmove ecx, edx
mov dword [ebp - 0x2c8], ecx
cmp eax, edx
jne 0x4051a1
test cl, cl
je 0x4051a1
cmp dword [ebp - 0x2b8], 0
je 0x4051ca
push str.Event_existed_before_but_no_longer_exists._Assuming_init_failure.
jmp 0x4051bd
mov al, byte [ebp - 0x2c1]
test al, al
je 0x40521f
test cl, cl
jne 0x40521f
cmp dword [ebp - 0x2b8], 0
je 0x4051ca
push str.Process_already_exited_and_no_event_to_wait_for...
push 0x45
lea ecx, [ebp - 0x2c0]
call fcn.00402891
test edi, edi
je 0x4051d5
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x4051e0
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0x24c]
call fcn.00407dc4
cmp dword [ebp - 0x2b8], 0
je 0x405200
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2bc], 0
je 0x405215
push dword [ebp - 0x2bc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x80004005
jmp 0x404cf7
test edi, edi
je 0x4052b3
test al, al
jne 0x4052b3
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x40528f
cmp eax, 0x102
je 0x4052b3
cmp eax, 0xffffffff
jne 0x405268
cmp dword [ebp - 0x2b8], 0
je 0x405262
push str.Process_wait_failed
push 0x45
lea ecx, [ebp - 0x2c0]
call fcn.00402891
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 0x2b8], 0
je 0x405283
push str.Unexpected_code_from_process_wait
push 0x45
lea ecx, [ebp - 0x2c0]
call fcn.00402891
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x404cb2
cmp dword [ebp - 0x2b8], 0
je 0x4052aa
push str.Detected_process_exit
push 0x49
lea ecx, [ebp - 0x2c0]
call fcn.00402891
xor eax, eax
inc eax
mov byte [ebp - 0x2c1], al
push 0xa
pop eax
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x2cc]
inc eax
jmp 0x404e69
cmp dword [ebp - 0x2b8], 0
je 0x4052e4
push str.Returning_ERROR_TIMEOUT
push 0x49
lea ecx, [ebp - 0x2c0]
call fcn.00402891
test edi, edi
je 0x4052ef
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x4052fa
push esi
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0x24c]
call fcn.00407dc4
cmp dword [ebp - 0x2b8], 0
je 0x40531a
push dword [ebp - 0x2b8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x2bc], 0
je 0x40532f
push dword [ebp - 0x2bc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x800705b4
jmp 0x404cf7