Function at 0x403b93
Capabilities:
Create process on windows
Create process suspended
Terminate process

Disassembly:
push rbp
sub rsp, 0x900
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x890], ecx
mov qword [rbp + 0x898], rdx
cmp dword [rbp + 0x890], 0
je 0x403c35
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
test rax, rax
je 0x403be2
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
mov rcx, rax
call sym.free
mov rax, qword [rbp + 0x898]
mov rax, qword [rax]
mov rcx, rax
call sym.strlen
add rax, 2
mov rcx, rax
call sym.malloc
mov qword [rbp + 0x878], rax
mov rax, qword [rbp + 0x898]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x878]
mov rcx, rax
call sym.strcpy
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rdx, qword [rbp + 0x878]
mov qword [rax + 0x38], rdx
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea rdx, [dbg.SvcCtrlHandler]
mov rcx, rax
mov rax, qword [sym.imp.ADVAPI32.dll_RegisterServiceCtrlHandlerA]
call rax
mov rdx, rax
lea rax, [0x0040b970]
mov qword [rax], rdx
lea rax, [0x0040b970]
mov rax, qword [rax]
test rax, rax
jne 0x403c99
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea r8, str.RegisterServiceCtrlHandler_failed
mov rdx, rax
mov ecx, 1
call dbg.log_event
jmp 0x40413b
lea rax, [0x0040b980]
mov dword [rax], 0x10
lea rax, [0x0040b980]
mov dword [rax + 0x10], 0
mov r8d, 0xbb8
mov edx, 0
mov ecx, 2
call dbg.ReportSvcStatus
mov r9d, 0
mov r8d, 0
mov edx, 1
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateEventA]
call rax
mov qword [0x0040b030], rax
mov rax, qword [0x0040b030]
test rax, rax
jne 0x403d37
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea r8, str.Could_not_create_stop_event
mov rdx, rax
mov ecx, 1
call dbg.log_event
mov r8d, 0
mov edx, 0
mov ecx, 1
call dbg.ReportSvcStatus
jmp 0x40413b
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x10]
mov rcx, rax
call dbg.makeDir
test eax, eax
jne 0x403d8d
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea r8, str.Could_not_create_root_directory._Make_sure_it_exists_before_starting_service
mov rdx, rax
mov ecx, 1
call dbg.log_event
mov r8d, 0
mov edx, 0
mov ecx, 1
call dbg.ReportSvcStatus
jmp 0x40413b
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rcx, rax
call dbg.openLogFile
mov qword [rbp + 0x870], rax
cmp qword [rbp + 0x870], 0xffffffffffffffff
jne 0x403dd7
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea r8, str.Could_not_open_service_log_file.
mov rdx, rax
mov ecx, 1
call dbg.log_event
jmp 0x40413b
lea rax, [rbp + 0x850]
mov r8d, 0x18
mov edx, 0
mov rcx, rax
call sym.memset
lea rax, [rbp + 0x7e0]
mov r8d, 0x68
mov edx, 0
mov rcx, rax
call sym.memset
mov dword [rbp + 0x7e0], 0x68
mov rax, qword [rbp + 0x870]
mov qword [rbp + 0x840], rax
mov rax, qword [rbp + 0x870]
mov qword [rbp + 0x838], rax
mov eax, dword [rbp + 0x81c]
or ah, 1
mov dword [rbp + 0x81c], eax
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rcx, qword [rax + 0x28]
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rdx, qword [rax + 0x20]
lea rax, [rbp - 0x20]
mov r9, rcx
mov r8, rdx
lea rdx, str.Starting__s__s
mov rcx, rax
call sym.sprintf
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea rdx, [rbp - 0x20]
mov r8, rdx
mov rdx, rax
mov ecx, 4
call dbg.log_event
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rdx, qword [rax + 0x28]
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rcx, qword [rax + 0x20]
lea rax, [rbp + 0x850]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x7e0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 1
mov r9d, 0
mov r8d, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateProcessA]
call rax
test eax, eax
jne 0x403f42
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea r8, str.Could_not_start_java
mov rdx, rax
mov ecx, 1
call dbg.log_event
mov r8d, 0
mov edx, 0
mov ecx, 1
call dbg.ReportSvcStatus
jmp 0x40413b
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rcx, qword [rax + 0x28]
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rdx, qword [rax + 0x20]
lea rax, [rbp - 0x20]
mov r9, rcx
mov r8, rdx
lea rdx, str.Started__s__s
mov rcx, rax
call sym.sprintf
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea rdx, [rbp - 0x20]
mov r8, rdx
mov rdx, rax
mov ecx, 4
call dbg.log_event
mov r8d, 0
mov edx, 0
mov ecx, 4
call dbg.ReportSvcStatus
mov rax, qword [0x0040b030]
mov qword [rbp - 0x30], rax
mov rax, qword [rbp + 0x850]
mov qword [rbp - 0x28], rax
lea rax, [rbp - 0x30]
mov r9d, 0xffffffff
mov r8d, 0
mov rdx, rax
mov ecx, 2
mov rax, qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
call rax
mov dword [rbp + 0x86c], eax
cmp dword [rbp + 0x86c], 1
je 0x4040a7
cmp dword [rbp + 0x86c], 0
je 0x40401a
cmp dword [rbp + 0x86c], 0x102
je 0x40401a
cmp dword [rbp + 0x86c], 0xffffffff
jne 0x4040ca
cmp dword [rbp + 0x86c], 0xffffffff
jne 0x404045
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea r8, str.Java_process_or_service_wait_failed.
mov rdx, rax
mov ecx, 1
call dbg.log_event
mov rax, qword [rbp + 0x850]
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_TerminateProcess]
call rax
test eax, eax
jne 0x404083
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea r8, str.Failed_to_terminate_java_process
mov rdx, rax
mov ecx, 1
call dbg.log_event
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea r8, str.Shutdown_Java_process
mov rdx, rax
mov ecx, 4
call dbg.log_event
jmp 0x4040ca
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea r8, str.Java_process_was_abnormally_terminated.
mov rdx, rax
mov ecx, 1
call dbg.log_event
nop
mov rax, qword [rbp + 0x850]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x858]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov rax, qword [rbp + 0x870]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rax
mov r8d, 0
mov edx, 0
mov ecx, 1
call dbg.ReportSvcStatus
lea rax, [0x0040b9a0]
mov rax, qword [rax]
mov rax, qword [rax + 0x38]
lea r8, str.QuestDB_is_shutdown
mov rdx, rax
mov ecx, 4
call dbg.log_event
nop
add rsp, 0x900
pop rbp
ret