Function at 0x56d094
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [sym.imp.libssp_0.dll___stack_chk_guard]
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x14], 0
mov eax, dword [0x7cc440]
test eax, eax
jne 0x56d616
mov dword [esp], str.advapi32.dll
call fcn.006a440c
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x56d0fe
mov dword [esp + 0x10], str.Couldnt_open_advapi32.dll.__Are_you_trying_to_use_NT_services_on_Windows_98__That_doesnt_work.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 1
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov dword [esp + 4], str.ChangeServiceConfig2A
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d158
mov dword [esp + 0x14], str.ChangeServiceConfig2A
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc444], eax
mov dword [esp + 4], str.CloseServiceHandle
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d1ba
mov dword [esp + 0x14], str.CloseServiceHandle
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc448], eax
mov dword [esp + 4], str.ControlService
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d21c
mov dword [esp + 0x14], str.ControlService
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc44c], eax
mov dword [esp + 4], str.CreateServiceA
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d27e
mov dword [esp + 0x14], str.CreateServiceA
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc450], eax
mov dword [esp + 4], str.DeleteService
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d2e0
mov dword [esp + 0x14], str.DeleteService
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc454], eax
mov dword [esp + 4], str.OpenSCManagerA
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d342
mov dword [esp + 0x14], str.OpenSCManagerA
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc458], eax
mov dword [esp + 4], str.OpenServiceA
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d3a4
mov dword [esp + 0x14], str.OpenServiceA
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc45c], eax
mov dword [esp + 4], str.QueryServiceStatus
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d406
mov dword [esp + 0x14], str.QueryServiceStatus
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc460], eax
mov dword [esp + 4], str.RegisterServiceCtrlHandlerA
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d468
mov dword [esp + 0x14], str.RegisterServiceCtrlHandlerA
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc464], eax
mov dword [esp + 4], str.SetServiceStatus
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d4ca
mov dword [esp + 0x14], str.SetServiceStatus
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc468], eax
mov dword [esp + 4], str.StartServiceCtrlDispatcherA
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d52c
mov dword [esp + 0x14], str.StartServiceCtrlDispatcherA
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc46c], eax
mov dword [esp + 4], str.StartServiceA
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d58b
mov dword [esp + 0x14], str.StartServiceA
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc470], eax
mov dword [esp + 4], str.LookupAccountNameA
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcAddress]
call eax
sub esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x56d5ea
mov dword [esp + 0x14], str.LookupAccountNameA
mov dword [esp + 0x10], str.Couldnt_find__s_in_advapi32.dll__We_probably_got_the_name_wrong.
mov dword [esp + 0xc], str.nt_service_loadlibrary
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0
mov dword [esp], 3
call fcn.006bf072
jmp 0x56d5fe
mov eax, dword [ebp - 0x10]
mov dword [0x7cc474], eax
mov dword [0x7cc440], 1
jmp 0x56d617
mov dword [esp], str.Unable_to_load_library_support_for_NT_services:_exiting.
call sub.msvcrt.dll_puts
mov dword [esp], 1
call sub.msvcrt.dll_exit
nop
mov eax, dword [ebp - 0xc]
xor eax, dword [sym.imp.libssp_0.dll___stack_chk_guard]
je 0x56d627
call sub.libssp_0.dll___stack_chk_fail
leave
ret