Function at 0x476c40
Capabilities:
Accept command line arguments

Disassembly:
push ebp
lea ebp, [esp - 0x840]
sub esp, 0x840
push 0xffffffffffffffff
push 0x4bf960
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x4fb00c]
xor eax, ebp
mov dword [ebp + 0x83c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x10], edi
push 0xe
xor eax, eax
mov dword [ebp + 4], 0x4d6388
push str.UnknownProduct
lea ecx, [ebp + 8]
mov dword [ebp + 0x18], 0
mov dword [ebp + 0x1c], 7
mov word [ebp + 8], ax
call fcn.00410a70
xorps xmm0, xmm0
mov byte [ebp + 0x20], 1
movq qword [ebp + 0x24], xmm0
mov byte [ebp + 0x24], 0
mov byte [ebp + 0x28], 0
mov dword [ebp - 4], 0
call dword [sym.imp.api_ms_win_core_processenvironment_l1_1_0.dll_GetCommandLineW]
push eax
lea ecx, [ebp + 4]
call fcn.00474940
cmp byte [ebp + 0x28], 0
je 0x476cdd
mov esi, dword [ebp + 0x24]
jmp 0x476ce5
call dword [sym.imp.api_ms_win_core_kernel32_legacy_l1_1_0.dll_WTSGetActiveConsoleSessionId]
mov esi, eax
mov ebx, dword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_GetCurrentProcessId]
call ebx
mov edx, dword [edi + 0x20]
lea ecx, [edi + 0x20]
mov dword [ebp - 0x18], eax
mov dword [ebp + 0x2c], 0
mov dword [ebp - 0x14], ecx
mov edx, dword [edx + 4]
call edx
test al, al
jne 0x476d37
lea eax, [ebp + 0x2c]
push eax
push dword [ebp - 0x18]
call dword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_ProcessIdToSessionId]
test eax, eax
je 0x476d37
cmp esi, dword [ebp + 0x2c]
je 0x476d37
push 0
push 0xc
push str.Daemon::CApplication::Run
call fcn.0046aee0
add esp, 0xc
mov esi, eax
jmp 0x47705d
call dword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_GetCurrentProcess]
push eax
mov dword [ebp - 0x18], eax
call dword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_GetPriorityClass]
mov esi, eax
test esi, esi
jne 0x476d66
call ebx
push eax
push str.Failed_to_get_the_priority_class_for_the_current_process__d
push 0x4e3924
push 4
call fcn.0046b300
add esp, 0x10
jmp 0x476d9c
cmp esi, 0x40
je 0x476d73
cmp esi, 0x4000
jne 0x476d9c
push 0x20
push dword [ebp - 0x18]
call dword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_SetPriorityClass]
test eax, eax
jne 0x476d9c
push 0x20
push esi
call ebx
push eax
push str.Failed_to_switch_the_priority_class_for_the_current_process__d_from_0x_x_to_0x_x
push 0x4e3924
push 4
call fcn.0046b300
add esp, 0x18
xorps xmm0, xmm0
lea ecx, [ebp + 0x30]
movlpd qword [ebp + 0x30], xmm0
mov dword [ebp + 0x30], 0
mov dword [ebp + 0x34], 0
call fcn.00477230
mov dword [ebp + 0x30], eax
mov ebx, dword [edi + 0xc]
mov ecx, 1
mov byte [ebp - 4], 1
mov dword [ebp], 0
test ebx, ebx
je 0x476f88
mov edx, dword [edi + 8]
nop dword [eax + eax]
cmp ecx, edx
jge 0x476f88
mov eax, dword [ebx + ecx*4]
cmp word [eax], 0x2f
je 0x476df4
inc ecx
jmp 0x476de0
mov dword [ebp], ecx
mov ebx, dword [ebx + ecx*4]
test ecx, ecx
jle 0x476f8f
xor edi, edi
xor esi, esi
nop word [eax + eax]
push ebx
push dword [esi + 0x4fc068]
call fcn.0044e516
add esp, 8
test eax, eax
je 0x476e85
add esi, 0x18
inc edi
cmp esi, 0x150
jb 0x476e10
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
test al, al
jne 0x476f50
push str.__start_t_tstarts_the_service_process_n__start_all_t_truns_all_the_service_modules_n__start_module1__...__truns_the_specified_service_modules_n__stop_t_texits_the_service_process_n__stop_all_t_tstops_all_the_service_modules_n__stop_module1__...__tstops_the_specified_service_modules_n__pause_t_tpauses_running_modules_n__continue_tresumes_the_execution_of_paused_modules_n__command_tlaunch_a_command_to_alive_modules_n__help_t_tdisplays_this_message_n__help_dialog_tdisplays_this_message_on_modal_dialog_box_n__list_t_tlists_daemon_modules_n__list_dialog_tlists_daemon_modules_on_modal_dialog_box_n__product_tcommands_per_product__n
push ebx
push str.Command__s_is_unknown._nUse_one_of_the_following:_n_n_s
lea eax, [ebp + 0x3c]
push 0x400
push eax
call fcn.0046ba60
mov edi, dword [ebp - 0x10]
lea ecx, [ebp + 0x3c]
add esp, 0x14
mov eax, dword [edi]
push ecx
mov ecx, edi
call dword [eax + 0x20]
push ebx
push str.Unknown_Command___s_
push 0xe
push str.Daemon::CApplication::Run
call fcn.0046aee0
add esp, 0x10
jmp 0x476f8f
lea eax, [edi + edi*2]
cmp dword [eax*8 + 0x4fc078], 0
jne 0x476ee8
mov ebx, dword [ebp - 0x14]
mov ecx, ebx
mov eax, dword [ebx]
mov eax, dword [eax + 0x10]
call eax
test al, al
jne 0x476eaf
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x14]
call eax
test al, al
je 0x476ee8
mov eax, dword [ebx]
mov ecx, ebx
mov eax, dword [eax + 0x14]
call eax
xor edx, edx
test al, al
mov eax, dword [ebp - 0x10]
mov ecx, eax
setne dl
add eax, 4
neg ecx
sbb ecx, ecx
and ecx, eax
lea eax, [ebp + 0x3b]
push ecx
push edx
push eax
call fcn.004b55d0
add esp, 0xc
test eax, eax
jne 0x476ee8
cmp byte [ebp + 0x3b], al
jne 0x476f81
mov edx, dword [ebp + 0x30]
mov esi, edx
mov eax, dword [edx + 4]
cmp byte [eax + 0xd], 0
jne 0x476f1d
mov ecx, dword [ebp]
nop dword [eax]
cmp dword [eax + 0x10], ecx
jge 0x476f0a
mov eax, dword [eax + 8]
jmp 0x476f0e
mov esi, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x476f00
cmp esi, edx
je 0x476f1d
cmp ecx, dword [esi + 0x10]
jge 0x476f4d
lea eax, [ebp]
mov dword [ebp - 0x18], eax
lea ecx, [ebp + 0x30]
lea eax, [ebp - 0x19]
push eax
lea eax, [ebp - 0x18]
push eax
push 0x4e362c
call fcn.00474e30
push eax
add eax, 0x10
lea ecx, [ebp + 0x30]
push eax
push esi
lea eax, [ebp - 0x20]
push eax
call fcn.004750f0
mov esi, dword [ebp - 0x20]
mov dword [esi + 0x14], edi
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp]
inc ecx
mov edx, dword [edi + 0xc]
test edx, edx
je 0x476f88
mov esi, dword [edi + 8]
cmp ecx, esi
jge 0x476f88
mov eax, dword [edx + ecx*4]
cmp word [eax], 0x2f
je 0x476f71
inc ecx
jmp 0x476f61
mov dword [ebp], ecx
mov ebx, dword [edx + ecx*4]
test ecx, ecx
jg 0x476e02
jmp 0x476f8f
xor esi, esi
jmp 0x477055
mov dword [ebp], 0xffffffff
xor ebx, ebx
lea esi, [edi + 0x984]
add edi, 0x160
nop dword [eax]
push edi
push 0
push 2
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_OpenEventW]
test eax, eax
jne 0x476fc5
push edi
push eax
push eax
mov eax, dword [ebp - 0x10]
push dword [eax + 0x148]
call dword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_CreateEventW]
test eax, eax
je 0x476fda
mov dword [esi], eax
inc ebx
add esi, 4
add edi, 0x208
cmp ebx, 4
jb 0x476fa0
xor esi, esi
jmp 0x476fed
push 0
push 2
push str.Daemon::CApplication::InitEvents
call fcn.0046aee0
add esp, 0xc
mov esi, eax
test esi, esi
jne 0x477055
mov edi, dword [ebp + 0x30]
mov eax, dword [edi]
mov dword [ebp - 0x14], eax
cmp eax, edi
je 0x477055
nop dword [eax]
mov ecx, dword [eax + 0x14]
test ecx, ecx
js 0x477046
mov ebx, dword [ebp - 0x10]
xor edx, edx
mov esi, dword [eax + 0x10]
lea eax, [ecx + ecx*2]
mov edi, dword [ebx + 0xc]
test edi, edi
je 0x47702b
mov ecx, dword [ebx + 8]
cmp ecx, esi
jle 0x47702b
mov edx, ecx
sub edx, esi
dec edx
inc esi
lea esi, [edi + esi*4]
jmp 0x47702d
xor esi, esi
mov ecx, dword [eax*8 + 0x4fc074]
mov eax, dword [eax*8 + 0x4fc070]
add ecx, ebx
push esi
push edx
call eax
mov edi, dword [ebp + 0x30]
mov esi, eax
lea ecx, [ebp - 0x14]
call fcn.00471260
mov eax, dword [ebp - 0x14]
cmp eax, edi
jne 0x477000
lea ecx, [ebp + 0x30]
call fcn.00475bf0
lea ecx, [ebp + 8]
mov dword [ebp + 4], 0x4d6388
call fcn.004306a0
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 + 0x83c]
xor ecx, ebp
call fcn.00437174
lea esp, [ebp + 0x840]
pop ebp
ret