Function at 0x4200d0
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x72c
mov eax, dword [0x4c2618]
xor eax, esp
mov dword [esp + 0x728], eax
push ebx
push esi
push edi
lea eax, [esp + 0xcc]
mov dword [esp + 0xc8], 0
push eax
mov dword [esp + 0xd0], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ebx, eax
call fcn.00406d20
sub esp, 8
lea ecx, [esp + 0x18]
call fcn.00403750
mov edx, 0x4ae144
mov dword [esp + 0xc0], 0x20
lea ecx, [esp + 0x20]
mov dword [esp + 0xc4], 0x4ae154
call fcn.00407bd0
lea ecx, [esp + 0x10]
call fcn.00402230
xor edi, edi
mov dword [esp + 0xfc], 7
xor eax, eax
mov dword [esp + 0xc], edi
xor esi, esi
mov dword [esp + 0xf8], edi
mov word [esp + 0xe8], ax
cmp dword [esp + 0xcc], eax
jle 0x4201d3
mov edx, dword [ebx + esi*4]
cmp word [edx], 0
jne 0x420192
xor eax, eax
jmp 0x4201a6
mov eax, edx
lea edi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x420197
sub eax, edi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0xf0]
call fcn.00405f70
push 1
push 0x4ae1e8
lea ecx, [esp + 0xf0]
call fcn.00405f70
inc esi
cmp esi, dword [esp + 0xcc]
jl 0x420185
xor edi, edi
xorps xmm0, xmm0
mov dword [esp + 0x10], 0x4acfa0
push 4
mov dword [esp + 0x24], 0x4acf98
mov dword [esp + 0x7c], vtable.std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__.0
mov dword [esp + 0x78], 0x50
movlpd qword [esp + 0x1c], xmm0
mov dword [esp + 0xac], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0x201
mov dword [esp + 0x94], 6
mov dword [esp + 0x98], 0
movlpd qword [esp + 0x9c], xmm0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x88], 0
call fcn.00466e4b
mov esi, eax
add esp, 4
test esi, esi
je 0x42028c
push 1
mov dword [esi], 0
call fcn.00451ec9
add esp, 4
mov dword [esi], eax
jmp 0x42028e
xor esi, esi
lea eax, [esp + 0x28]
mov dword [esp + 0xa8], esi
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x78]
lea eax, [esp + 0xc8]
mov dword [esp + 0xb4], 0
push eax
call fcn.0040c1a0
push eax
call fcn.0040bae0
mov ecx, dword [esp + 0xcc]
add esp, 4
mov esi, eax
test ecx, ecx
je 0x4202e3
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x4202e3
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [esi]
mov ecx, esi
push 0x20
call dword [eax + 0x30]
cmp dword [esp + 0xb0], 0
mov word [esp + 0xb8], ax
jne 0x420326
mov eax, dword [esp + 0x84]
or eax, 4
and eax, 0x17
mov dword [esp + 0x84], eax
test dword [esp + 0x88], eax
je 0x420326
push 0
lea ecx, [esp + 0x7c]
call fcn.0040e060
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x20], vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [esp + ecx + 0x1c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x10], vtable.std::basic_iostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x20]
mov dword [esp + ecx + 0xc], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x10], vtable.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [esp + ecx + 0xc], eax
lea ecx, [esp + 0x28]
call fcn.00405eb0
mov edx, 0x4ae1ec
mov dword [esp + 0x28], vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
lea ecx, [esp + 0x20]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0xc0], 0x10
mov dword [esp + 0xc4], str.wWinMain
call fcn.00408070
lea edx, [esp + 0xe8]
lea ecx, [esp + 0x20]
call fcn.00408350
lea ecx, [esp + 0x10]
call fcn.00402230
cmp dword [esp + 0xcc], 2
jl 0x42066f
mov esi, dword [ebx + 4]
cmp word [esi], 0x2f
jne 0x42040e
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4203f7
sub ecx, edx
sar ecx, 1
cmp ecx, 1
jbe 0x42040e
add esi, 2
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push 0x4ae218
push esi
call edi
test eax, eax
jne 0x420438
call fcn.00421170
call fcn.00449af0
xor cl, cl
call fcn.0042c3a0
xor edi, edi
jmp 0x4207eb
push str.login_silent
push esi
call edi
test eax, eax
jne 0x42045c
call fcn.00421170
call fcn.00449af0
mov cl, 1
call fcn.0042c3a0
xor edi, edi
jmp 0x4207eb
push 0x4ae240
push esi
call edi
test eax, eax
jne 0x42047e
call fcn.00421170
call fcn.00449af0
call fcn.0042cef0
xor edi, edi
jmp 0x4207eb
push str.switch_account
push esi
call edi
test eax, eax
jne 0x4204a0
call fcn.00421170
call fcn.00449af0
call fcn.0042d450
xor edi, edi
jmp 0x4207eb
push 0x630
lea eax, [esp + 0x104]
push 0
push eax
call fcn.0046d1b0
add esp, 0xc
lea ecx, [esp + 0x100]
call fcn.00424420
push str.install
push esi
call edi
test eax, eax
jne 0x4204df
lea ecx, [esp + 0x100]
call fcn.00429f90
mov dword [esp + 0xc], eax
push str.uninstall
push esi
call edi
test eax, eax
jne 0x420500
call fcn.0041eab0
lea ecx, [esp + 0x100]
call fcn.0042a040
mov dword [esp + 0xc], eax
push str.stop
push esi
call edi
test eax, eax
jne 0x42051c
lea ecx, [esp + 0x100]
call fcn.00429e30
mov dword [esp + 0xc], eax
push str.start
push esi
call edi
test eax, eax
jne 0x420594
cmp dword [esp + 0xcc], 3
jl 0x420580
call fcn.00449af0
mov edx, dword [ebx + 8]
lea ecx, [esp + 0xd0]
call fcn.00420e70
cmp dword [esp + 0xe0], 0
je 0x42056c
cmp dword [esp + 0xe4], 8
lea ecx, [esp + 0xd0]
cmovae ecx, dword [esp + 0xd0]
call fcn.00420f40
mov ecx, dword [ebx + 8]
call fcn.00421000
lea ecx, [esp + 0xd0]
call fcn.0040d330
push 0
push 0
lea ecx, [esp + 0x108]
call fcn.00429dc0
mov dword [esp + 0xc], eax
push 0x4ae134
push esi
call fcn.004697df
add esp, 8
test eax, eax
je 0x420600
sub esp, 8
lea ecx, [esp + 0x18]
call fcn.00403750
mov edx, str.Starting_service_with_crash_param
mov dword [esp + 0xc0], 0x10
lea ecx, [esp + 0x20]
mov dword [esp + 0xc4], str.wWinMain
call fcn.00408070
lea ecx, [esp + 0x10]
call fcn.00402230
lea eax, [esp + 0xc8]
mov dword [esp + 0xc8], esi
push eax
push 1
lea ecx, [esp + 0x108]
call fcn.00429dc0
mov dword [esp + 0xc], eax
push str.disable
push esi
call edi
test eax, eax
jne 0x42061c
lea ecx, [esp + 0x100]
call fcn.00429f20
mov dword [esp + 0xc], eax
push 0x4ae304
push esi
call edi
test eax, eax
jne 0x420638
lea ecx, [esp + 0x100]
call fcn.00429eb0
mov edi, eax
jmp 0x42063c
mov edi, dword [esp + 0xc]
push str.module_uninstalled
push esi
call fcn.004697df
add esp, 8
cmp eax, esi
jne 0x42065e
call fcn.00449af0
lea ecx, [esi + 0x26]
call fcn.0041ec70
movzx edi, al
lea ecx, [esp + 0x100]
call fcn.004245c0
jmp 0x4207e0
mov eax, dword [0x4c9c3c]
test al, 1
jne 0x4206de
xorps xmm0, xmm0
or eax, 1
movdqu xmmword [0x4c9c40], xmm0
mov dword [0x4c9c3c], eax
mov dword [0x4c9c40], 0
mov dword [0x4c9c44], 0
call fcn.00441ad0
mov dword [0x4c9c40], eax
mov dword [0x4c9c48], 0
mov dword [0x4c9c4c], 0
call fcn.00441ad0
mov ecx, 0x4c9c40
mov dword [0x4c9c48], eax
call fcn.004402d0
push 0x4a3a90
call fcn.00467a8c
add esp, 4
mov edx, dword [0x4c9c40]
mov ecx, edx
mov eax, dword [edx + 4]
cmp byte [eax + 0xd], 0
jne 0x420716
nop
cmp dword [eax + 0x10], 1
jge 0x4206fb
mov eax, dword [eax + 8]
jmp 0x4206ff
mov ecx, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x4206f0
cmp ecx, edx
je 0x420716
cmp dword [ecx + 0x10], 1
mov dword [esp + 0xc8], ecx
jle 0x42071d
mov dword [esp + 0xc8], edx
lea eax, [esp + 0xc8]
mov eax, dword [eax]
cmp eax, edx
je 0x420737
add eax, 0x14
cmp dword [eax + 0x14], 8
jb 0x42073c
mov eax, dword [eax]
jmp 0x42073c
mov eax, 0x4ac980
push eax
call fcn.00469b20
add esp, 4
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd0], eax
lea eax, [esp + 0xd0]
mov dword [esp + 0xd4], 0x420a20
mov dword [esp + 0xd8], 0
push eax
mov dword [esp + 0xe0], 0
call dword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherW]
test eax, eax
jne 0x4207d1
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 8
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.00403750
mov edx, str.Box_agent_service_control_dispatcher_failed_with_error
mov dword [esp + 0xc0], 4
lea ecx, [esp + 0x20]
mov dword [esp + 0xc4], str.wWinMain
call fcn.00408070
push esi
lea ecx, [esp + 0x24]
call fcn.0041fd70
lea ecx, [esp + 0x10]
call fcn.00402230
push dword [esp + 0xc8]
call fcn.00467758
add esp, 4
test ebx, ebx
je 0x4207eb
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [esp + 0xfc], 8
jb 0x420804
push dword [esp + 0xe8]
call fcn.00466e37
add esp, 4
xor eax, eax
mov dword [esp + 0xfc], 7
xorps xmm0, xmm0
mov dword [esp + 0xf8], 0
push 4
mov word [esp + 0xec], ax
mov dword [esp + 0x14], 0x4acfa0
mov dword [esp + 0x24], 0x4acf98
mov dword [esp + 0x7c], vtable.std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__.0
mov dword [esp + 0x78], 0x50
movlpd qword [esp + 0x1c], xmm0
mov dword [esp + 0xac], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], 0x201
mov dword [esp + 0x94], 6
mov dword [esp + 0x98], eax
movlpd qword [esp + 0x9c], xmm0
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x88], eax
call fcn.00466e4b
mov esi, eax
add esp, 4
test esi, esi
je 0x4208c1
push 1
mov dword [esi], 0
call fcn.00451ec9
add esp, 4
mov dword [esi], eax
jmp 0x4208c3
xor esi, esi
lea eax, [esp + 0x28]
mov dword [esp + 0xa8], esi
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x78]
lea eax, [esp + 0xc8]
mov dword [esp + 0xb4], 0
push eax
call fcn.0040c1a0
push eax
call fcn.0040bae0
mov ecx, dword [esp + 0xcc]
add esp, 4
mov esi, eax
test ecx, ecx
je 0x420918
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x420918
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [esi]
mov ecx, esi
push 0x20
call dword [eax + 0x30]
cmp dword [esp + 0xb0], 0
mov word [esp + 0xb8], ax
jne 0x42095b
mov eax, dword [esp + 0x84]
or eax, 4
and eax, 0x17
mov dword [esp + 0x84], eax
test dword [esp + 0x88], eax
je 0x42095b
push 0
lea ecx, [esp + 0x7c]
call fcn.0040e060
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x20], vtable.std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
lea eax, [ecx - 8]
mov dword [esp + ecx + 0x1c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x10], vtable.std::basic_iostream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x20]
mov dword [esp + ecx + 0xc], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov dword [esp + eax + 0x10], vtable.std::basic_stringstream_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x68]
mov dword [esp + ecx + 0xc], eax
lea ecx, [esp + 0x28]
call fcn.00405eb0
mov edx, str.ScoppedLogInit
mov dword [esp + 0x28], vtable.std::basic_stringbuf_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__.0
lea ecx, [esp + 0x20]
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0xc0], 0x20
mov dword [esp + 0xc4], str.ScoppedLogInit::ScoppedLogInit
call fcn.00407bd0
lea ecx, [esp + 0x10]
call fcn.00402230
call fcn.00406c80
mov ecx, dword [esp + 0x734]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00466e3c
mov esp, ebp
pop ebp
ret 0x10