Function at 0x408770
Capabilities:
Accept command line arguments

Disassembly:
sub esp, 0x10c
mov eax, dword [0x4d01d4]
xor eax, esp
mov dword [esp + 0x108], eax
push ebx
push ebp
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetCommandLineW]
xor bl, bl
push edi
mov byte [esp + 0x12], bl
call esi
push eax
push str.GetCommandLine:_S_r_n
push 0x90
push str..DriveTheLife.cpp
push 8
call fcn.0048ccc0
push eax
call fcn.0048c3e0
add esp, 0x18
lea eax, [esp + 0x14]
push eax
call esi
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x13]
mov ebp, eax
push ecx
mov byte [esp + 0x17], bl
push edx
mov ebx, ebp
call fcn.004083a0
mov bl, byte [esp + 0x1b]
add esp, 8
mov esi, eax
movzx eax, bl
push eax
push esi
push str.ProcessCommandline:_S_bServiceFlag:_d__r_n
push 0x98
push str..DriveTheLife.cpp
push 8
call fcn.0048ccc0
push eax
call fcn.0048c3e0
add esp, 0x1c
call fcn.004024c0
test eax, eax
je 0x40883a
push str.CCommonHelp::IsUserAdmin_true_r_n
push 0x9c
push str..DriveTheLife.cpp
push 8
mov byte [esp + 0x22], 1
call fcn.0048ccc0
push eax
call fcn.0048c3e0
add esp, 0x14
jmp 0x408a0c
call fcn.00489ac0
cmp eax, 0x40
jb 0x4088af
mov ebx, dword [esp + 0x14]
mov edi, 1
cmp ebx, edi
jle 0x4088a8
test ebp, ebp
je 0x4088a8
mov eax, dword [ebp + edi*4]
movzx ecx, word [eax]
cmp cx, 0x2d
je 0x408868
cmp cx, 0x2f
jne 0x4088a3
mov ecx, str.start
add eax, 2
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x408896
test dx, dx
je 0x408892
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x408896
add eax, 4
add ecx, 4
test dx, dx
jne 0x408870
xor eax, eax
jmp 0x40889b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x408a0c
inc edi
cmp edi, ebx
jl 0x408851
mov bl, 1
jmp 0x408a07
test esi, esi
je 0x408a0c
call fcn.00489ac0
cmp eax, 0x40
jb 0x408a0c
test bl, bl
jne 0x4089fc
xor ecx, ecx
push 0xfe
push ecx
lea edx, [esp + 0x22]
push edx
mov word [esp + 0x24], cx
call fcn.00473d50
add esp, 0xc
mov ecx, str._second_s
mov eax, esi
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x408916
test dx, dx
je 0x408912
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x408916
add eax, 4
add ecx, 4
test dx, dx
jne 0x4088f0
xor eax, eax
jmp 0x40891b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408930
push str._second_s_svc
push 0x80
lea eax, [esp + 0x20]
push eax
jmp 0x408986
mov ecx, str._second_r
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x40895d
test dx, dx
je 0x408959
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x40895d
add eax, 4
add ecx, 4
test dx, dx
jne 0x408937
xor eax, eax
jmp 0x408962
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x408977
push str._second_r_svc
push 0x80
lea ecx, [esp + 0x20]
push ecx
jmp 0x408986
push str._second_n_svc
push 0x80
lea edx, [esp + 0x20]
push edx
call fcn.004717be
add esp, 0xc
call fcn.00411d30
test eax, eax
je 0x4089d8
push str.StartDTLClient
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4089d8
lea ecx, [esp + 0x18]
push ecx
call eax
test al, al
je 0x4089d8
lea edx, [esp + 0x18]
push edx
push str.CSvcCoreInterface::StartDTLClient__S__succ__r_n
push 0xd8
push str..DriveTheLife.cpp
push 8
call fcn.0048ccc0
push eax
call fcn.0048c3e0
add esp, 0x18
jmp 0x408a0c
lea eax, [esp + 0x18]
push eax
push str.CSvcCoreInterface::StartDTLClient__S__failed__r_n
push 0xdd
push str..DriveTheLife.cpp
push 1
call fcn.0048ccc0
push eax
call fcn.0048c3e0
add esp, 0x18
call fcn.00489ac0
cmp eax, 0x40
setae bl
call fcn.00402260
push ebp
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov ecx, dword [esp + 0x118]
mov al, byte [esp + 0x12]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00470f4c
add esp, 0x10c
ret