Function at 0x10001ad0
Capabilities:
Modify service
Query service status
Start service

Disassembly:
sub esp, 0x28
push ebx
xor eax, eax
push esi
push edi
push str.ABCore.exe
mov edi, 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], eax
call fcn.10001940
add esp, 4
neg eax
sbb eax, eax
inc eax
jne 0x10001b47
push 0x8d
call fcn.10001520
mov esi, eax
call sub.Comn.dll_GetObjectLog
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
push esi
push 0
push str._ProcessExist_APP_BACKUPCORE_
push str._s_return_code:_0x_08X___s.
push eax
call edx
add esp, 0x18
mov eax, edi
pop edi
pop esi
pop ebx
add esp, 0x28
ret
push 0xf003f
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x14], ebx
jne 0x10001be8
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0x94
add esi, 0xc
call fcn.10001520
push eax
mov eax, dword [esi]
push str._s:_Open_server_manager_failed
push edi
call eax
add esp, 0x10
call fcn.10002240
test eax, eax
jne 0x10001bdc
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0x98
add esi, 0xc
call fcn.10001520
mov ecx, dword [esi]
push eax
push str._s:_Start_backupcore_failed
push edi
call ecx
push 0x99
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x10002203
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x28
ret
push 0xf01ff
push str.Backupper_Service
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x10001c4e
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xa1
add esi, 0xc
call fcn.10001520
mov edx, dword [esi]
push eax
push str._s:_Not_fond_Backupper_Service
push edi
call edx
push 0xa2
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x100021f4
lea eax, [esp + 0x18]
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x10001ca9
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xa7
add esi, 0xc
call fcn.10001520
mov ecx, dword [esi]
push eax
push str._s:_Query_server_fail
push edi
call ecx
push 0xa8
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x100021f4
mov eax, dword [esp + 0x1c]
add eax, 0xffffffff
cmp eax, 6
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_Sleep]
ja case.default.0x10001cc0
jmp dword [eax*4 + 0x10002218]
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xb0
add esi, 0xc
call fcn.10001520
mov edx, dword [esi]
push eax
push str._s:_Service_stopped
push edi
call edx
add esp, 0x10
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push 2
push 0xffffffffffffffff
push ebx
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
test eax, eax
jne 0x10001d55
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xb3
add esi, 0xc
call fcn.10001520
push eax
mov eax, dword [esi]
push str._s:_change_serveice_cfg_fail
push edi
call eax
push 0xb4
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x100021f3
push 0xbb8
call ebp
push 0
push 0
push ebx
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
jne 0x10001db6
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xba
add esi, 0xc
call fcn.10001520
mov ecx, dword [esi]
push eax
push str._s:__Start_backup_service_fail
push edi
call ecx
push 0xbb
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x100021f3
push 0xbb8
call ebp
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0x102
add esi, 0xc
call fcn.10001520
push eax
mov eax, dword [esi]
push str._s:______how_long_does_checking_service_status______
push edi
call eax
add esp, 0x10
lea ecx, [esp + 0x1c]
push ecx
push ebx
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x1000204e
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0x106
add esi, 0xc
call fcn.10001520
mov edx, dword [esi]
push eax
push str._s:_query_server_fail
push edi
call edx
push 0x107
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x100021f3
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xc4
add esi, 0xc
call fcn.10001520
mov edx, dword [esi]
push eax
push str._s:_Service_start_pending.
push edi
call edx
add esp, 0x10
push 0x1388
jmp 0x10001dbb
push 0x1388
call ebp
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push 2
push 0xffffffffffffffff
push ebx
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
test eax, eax
jne 0x10001edf
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xdc
add esi, 0xc
call fcn.10001520
push eax
mov eax, dword [esi]
push str._s:_change_serveice_cfg_fail
push edi
call eax
push 0xdd
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x100021f3
push 0xbb8
call ebp
push 0
push 0
push ebx
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
jne 0x10001db6
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xe3
add esi, 0xc
call fcn.10001520
mov ecx, dword [esi]
push eax
push str._s:__start_aomei_server_fail
push edi
call ecx
push 0xe4
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x100021f3
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xeb
add esi, 0xc
call fcn.10001520
mov edx, dword [esi]
push eax
push str._s:_Service_running
push edi
call edx
add esp, 0x10
jmp case.default.0x10001cc0
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xf0
add esi, 0xc
call fcn.10001520
push eax
mov eax, dword [esi]
push str._s:_Service_is_continue_pending
push edi
call eax
push 0xf1
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x100021f3
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xf6
add esi, 0xc
call fcn.10001520
mov ecx, dword [esi]
push eax
push str._s:_ab_server_is_pause_pending
push edi
call ecx
push 0xf7
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x100021f3
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0xfc
add esi, 0xc
call fcn.10001520
mov edx, dword [esi]
push eax
push str._s:_ab_server_is_pause_paused
push edi
call edx
push 0xfd
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x100021f3
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0x109
add esi, 0xc
call fcn.10001520
push eax
mov eax, dword [esi]
push str._s:______end_check_service_____
push edi
call eax
add esp, 0x10
cmp dword [esp + 0x20], 4
je 0x100020c4
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0x10d
add esi, 0xc
call fcn.10001520
mov ecx, dword [esi]
push eax
push str._s:_ab_server_isnt_running
push edi
call ecx
push 0x10e
xor edi, edi
call fcn.10001520
add esp, 0x14
push eax
push str.FALSE
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
jmp 0x100021f3
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0x123
add esi, 0xc
call fcn.10001520
mov edx, dword [esi]
push eax
push str._s:______How_long_does_it_take_to_send_the_control_code_____
push edi
call edx
mov ebx, dword [sym.imp.ADVAPI32.dll_ControlService]
add esp, 0x10
mov edi, edi
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0x1c]
push eax
push 0xca
push ecx
call ebx
test eax, eax
je 0x1000215e
push 0x12c
call ebp
push str.ABCore.exe
call fcn.10001940
add esp, 4
test eax, eax
jne 0x10002198
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0x130
add esi, 0xc
call fcn.10001520
mov edx, dword [esi]
push eax
push str._s:_Not_found_ABCore.exe
push edi
call edx
jmp 0x1000217f
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0x135
add esi, 0xc
call fcn.10001520
push eax
mov eax, dword [esi]
push str._s:_Failed_to_start_task
push edi
call eax
mov eax, dword [esp + 0x20]
mov ecx, eax
add eax, 1
add esp, 0x10
cmp ecx, 0x64
mov dword [esp + 0x10], eax
jl 0x100020f0
call sub.Comn.dll_GetObjectLog
mov edi, eax
mov esi, dword [edi]
push 0x138
add esi, 0xc
call fcn.10001520
mov edx, dword [esi]
push eax
push str._s:______end_send_control_code_____
push edi
call edx
xor eax, eax
add esp, 0x10
cmp dword [esp + 0x10], 0x64
setl al
mov edi, eax
test edi, edi
jne 0x100021ef
push 0x13a
call fcn.10001520
add esp, 4
push eax
push str.Retry_100
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.100016d0
add esp, 8
mov ebx, dword [esp + 0x14]
pop ebp
test ebx, ebx
je 0x100021ff
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x1000220e
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, edi
pop edi
pop esi
pop ebx
add esp, 0x28
ret